删除一个文件夹(转)

来源:互联网 发布:古北水镇 知乎 编辑:程序博客网 时间:2024/05/21 11:36

1,  Windows API RemoveDirectory函数,但是此函数只能删除具有权限的文件夹。一般空文件夹是可以删除的,而在“文件夹1中只有一个“空文件夹2,却不能用此函数删除文件夹1

2,  用递归的方法。

删除文件夹,计算文件夹的大小等等都是用递归的方法。

从原理上讲,使用递归方式遍历目录树,先删除一个目录里的所有文件,然后删除目录。删除文件和空目录用DeleteFileRemoveDirectory

 

BOOL CDeleteProjectDlg::deleteFolder( CString strFolderPath )

{

WIN32_FIND_DATA fd;  

HANDLE  hFind;

if(strFolderPath.Right(1) != "//")
{
  strFolderPath += "//";
}


hFind = FindFirstFile(strFolderPath   +   "*.*",&fd);  

   

if (hFind != INVALID_HANDLE_VALUE)  

{  

     while (FindNextFile(hFind, &fd))  

    {  

         //is directory?

         if   (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  

         {  

             CString   name;  

             name   =   fd.cFileName;  

             //is "." or ".."

             if   ((name   !=   ".")   &&   (name   !=   ".."))  

             {  

                 //is directory, recursion

                 deleteFolder(strFolderPath + fd.cFileName   +   "//");  

             }  

         }  

         else

         {

             DeleteFile(strFolderPath + fd.cFileName);  

         }

     }  

     ::FindClose(hFind);  

}  

RemoveDirectory(strFolderPath);  

}  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/primer_programer/archive/2007/12/26/1968255.aspx

 

原创粉丝点击