程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++遞歸刪除一個目次實例

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

編輯:關於C++

C++遞歸刪除一個目次實例。本站提示廣大學習愛好者:(C++遞歸刪除一個目次實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++遞歸刪除一個目次實例正文


本文實例講述了C++遞歸刪除一個目次的完成辦法。分享給年夜家供年夜家參考。詳細辦法以下:

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(); 
}

遞歸刪除代碼以下:

//輪回刪除一個目次 
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++法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved