国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++遞歸刪除一個目錄實例

2020-01-26 15:14:18
字體:
來源:轉載
供稿:網友

本文實例講述了C++遞歸刪除一個目錄的實現方法。分享給大家供大家參考。具體方法如下:

CFindFile的使用框架如下:

復制代碼 代碼如下:
void Recurse(LPCTSTR pstr) 

   CFileFind finder; 
 
   // build a string with wildcards 
   CString strWildcard(pstr); 
   strWildcard += _T("http://*.*"); 
 
   // start working for files 
   BOOL bWorking = finder.FindFile(strWildcard); 
 
   while (bWorking) 
   { 
      bWorking = finder.FindNextFile(); 
 
      // skip . and .. files; otherwise, we'd 
      // recur infinitely! 
 
      if (finder.IsDots()) 
         continue; 
 
      // if it's a directory, recursively search it 
 
      if (finder.IsDirectory()) 
      { 
         CString str = finder.GetFilePath(); 
         TRACE(_T("%s/n"), (LPCTSTR)str); 
         Recurse(str); 
      } 
   } 
 
   finder.Close(); 
}

遞歸刪除代碼如下:

復制代碼 代碼如下:
//循環刪除一個目錄 
void RecursiveDelete(CString strDir) 

    CFileFind ff; 
    CString strPath; 
    strPath = strDir; 
    if (strPath.Right(1) != '//') 
    { 
        strPath += '//'; 
    } 
    strPath += "*.*"; 
 
    BOOL bWorking = ff.FindFile(strPath); 
    while (bWorking) 
    { 
        bWorking = ff.FindNextFile(); 
 
        // skip . and .. files; otherwise, we'd 
        // recur infinitely! 
        if (ff.IsDots()) 
            continue; 
 
        // if it's a directory, recursively search it 
 
        if (ff.IsDirectory()) 
        { 
            //遞歸目錄 
            CString str = ff.GetFilePath(); 
            TRACE(_T("%s/n"), (LPCTSTR)str); 
            RecursiveDelete(str); 
            //刪除目錄 
            ::SetFileAttributesA(str, FILE_ATTRIBUTE_NORMAL); 
            ::RemoveDirectory(str); 
        } 
        else 
        { 
            //刪除文件 
            CString str = ff.GetFilePath(); 
            TRACE(_T("%s/n"), (LPCTSTR)str); 
            ::SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL); 
            ::DeleteFile(str); 
        } 
    } 
 
    ff.Close(); 
 

int main(int argc, char *argv[]) 

    RecursiveDelete("C://20_128//"); 
    return 0; 
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉义县| 桂平市| 武山县| 永康市| 平遥县| 凤冈县| 朔州市| 喀喇| 黄山市| 南充市| 桂平市| 贵德县| 玛曲县| 灵台县| 咸丰县| 白城市| 历史| 伊金霍洛旗| 铜鼓县| 罗山县| 张家口市| 电白县| 秦安县| 宣化县| 依安县| 西乌珠穆沁旗| 平罗县| 甘洛县| 定结县| 宁蒗| 称多县| 新建县| 镶黄旗| 昌平区| 绵阳市| 永济市| 伊春市| 吉水县| 公安县| 上犹县| 曲阜市|