本文共 2148 字,大约阅读时间需要 7 分钟。
1.
void DeleteDirectory(CString strDir) { if(strDir.IsEmpty()) return; // 首先删除文件及子文件夹 CFileFind ff; BOOL bFound = ff.FindFile(strDir+"\\*", 0); while(bFound) { bFound = ff.FindNextFile(); if(ff.GetFileName()=="."||ff.GetFileName()=="..") continue; // 去掉文件(夹)只读等属性 SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL); if(ff.IsDirectory()) { // 递归删除子文件夹 DeleteDirectory(ff.GetFilePath()); RemoveDirectory(ff.GetFilePath()); } else { // 删除文件 DeleteFile(ff.GetFilePath()); } } ff.Close(); // 然后删除该文件夹 RemoveDirectory(strDir); }2。
BOOL DeleteDirectory(LPCTSTR DirName) { CFileFind tempFind; char tempFileFind[200]; sprintf(tempFileFind,"%s\\*.*",DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots()) // 如果不是'.'或者'..' { char foundFileName[200]; strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200)); if(tempFind.IsDirectory()) //是否是目录 { char tempDir[200]; sprintf(tempDir,"%s\\%s",DirName,foundFileName); DeleteDirectory(tempDir); } else //若是文件,则删除 { char tempFileName[200]; sprintf(tempFileName,"%s\\%s",DirName,foundFileName); DeleteFile(tempFileName); } } } tempFind.Close(); if(!RemoveDirectory(DirName)) { AfxMessageBox("删除目录失败!",MB_OK); return FALSE; } return TRUE; }
转载自:http://xbgd.iteye.com/blog/663025
参考
http://blog.csdn.net/abyss521/article/details/8457998