DeleteDirectory(LPCTSTR DirName)函數的完整實現如下: BOOL DeleteDirectory(LPCTSTR DirName) { CFileFind tempFind; file://聲明一個CFileFind類變量,以用來搜索 char tempFileFind[200]; file://用於定義搜索格式 sprintf(tempFileFind,"%s//*.*",DirName); file://匹配格式爲*.*,即該目錄下的所有文件
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); file://查找第一個文件 while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); file://遞歸搜索其他的文件 if(!tempFind.IsDots()) file://如果不是"."目錄 { char foundFileName[200]; strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200)); if(tempFind.IsDirectory()) file://如果是目錄,則遞歸地調用 { file://DeleteDirectory char tempDir[200]; sprintf(tempDir,"%s//%s",DirName,foundFileName); DeleteDirectory(tempDir); } else { file://如果是文件則直接刪除之 char tempFileName[200]; sprintf(tempFileName,"%s//%s",DirName,foundFileName); DeleteFile(tempFileName); } } } tempFind.Close(); if(!RemoveDirectory(DirName)) file://刪除目錄 { AfxMessageBox("刪除目錄失敗!",MB_OK); return FALSE; } return TRUE; } |