欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年10月14日 09:50:52   投稿:shichen2014  
這篇文章主要介紹了C++遞歸刪除一個目錄的實現(xiàn)方法,涉及到目錄的操作及遞歸算法的應用,需要的朋友可以參考下

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

CFindFile的使用框架如下:

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

   CFileFind finder; 
 
   // build a string with wildcards 
   CString strWildcard(pstr); 
   strWildcard += _T("\\*.*"); 
 
   // 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(); 
}

遞歸刪除代碼如下:

復制代碼 代碼如下:
//循環(huán)刪除一個目錄 
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++程序設計有所幫助。

相關文章

  • C++拋出和接收異常的順序

    C++拋出和接收異常的順序

    這篇文章主要介紹了C++拋出和接收異常的順序,幫助大家更好的理解和學習C++,感興趣的朋友可以了解下
    2020-08-08
  • 淺談C語言的字節(jié)對齊 #pragma pack(n)2

    淺談C語言的字節(jié)對齊 #pragma pack(n)2

    下面小編就為大家?guī)硪黄獪\談C語言的字節(jié)對齊 #pragma pack(n)2。小編覺得挺不錯的現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++友元(Friend)用法實例簡介

    C++友元(Friend)用法實例簡介

    這篇文章主要介紹了C++友元(Friend)用法,對于C++的學習來說有很好的參考價值,需要的朋友可以參考下
    2014-08-08
  • C++ 命名空間詳解

    C++ 命名空間詳解

    這篇文章主要介紹了C++ 命名空間的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2021-11-11
  • C++中可以接受任意多個參數(shù)的函數(shù)定義方法(詳解)

    C++中可以接受任意多個參數(shù)的函數(shù)定義方法(詳解)

    下面小編就為大家?guī)硪黄狢++中可以接受任意多個參數(shù)的函數(shù)定義方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • C++ VTK實例之高斯隨機數(shù)的生成

    C++ VTK實例之高斯隨機數(shù)的生成

    這篇文章主要介紹了VTK的一個實例之高斯隨機數(shù)的生成,本文演示了從一個平均數(shù)是0.0和標準偏差是2.2的高斯分布中隨機生成3個隨機數(shù)。感興趣的同學可以學習一下
    2021-11-11
  • C語言實現(xiàn)三子棋游戲簡易版

    C語言實現(xiàn)三子棋游戲簡易版

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)三子棋游戲簡易版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++強制類型轉換的四種方式

    C++強制類型轉換的四種方式

    本文主要介紹了C++強制類型轉換的四種方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • VisualStudio2019構建C/C++靜態(tài)庫和動態(tài)庫dll的問題 附源碼

    VisualStudio2019構建C/C++靜態(tài)庫和動態(tài)庫dll的問題 附源碼

    這篇文章主要介紹了VisualStudio2019構建C/C++靜態(tài)庫和動態(tài)庫(dll)(文末附源碼),本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C語言超詳細講解函數(shù)指針的運用

    C語言超詳細講解函數(shù)指針的運用

    函數(shù)指針是一個指針變量,它可以存儲函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關于C語言進階教程之函數(shù)指針的相關資料,需要的朋友可以參考下
    2022-06-06

最新評論