您的位置:首页 > 其它

VC删除文件夹下所有文件

2013-04-22 13:53 190 查看
//删除文件夹目录(非空)




[cpp] view
plaincopyprint?

bool DeleteDirectory(char* sDirName)   

{   

    CFileFind tempFind;   

    char sTempFileFind[200] ;  

      

    sprintf(sTempFileFind,"%s\*.*",sDirName);   

    BOOL IsFinded = tempFind.FindFile(sTempFileFind);   

    while (IsFinded)   

    {   

        IsFinded = tempFind.FindNextFile();   

          

        if (!tempFind.IsDots())   

        {   

            char sFoundFileName[200];   

            strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));   

              

            if (tempFind.IsDirectory())   

            {   

                char sTempDir[200];   

                sprintf(sTempDir,"%s\%s",sDirName,sFoundFileName);   

                DeleteDirectory(sTempDir);   

            }   

            else   

            {   

                char sTempFileName[200];   

                sprintf(sTempFileName,"%s\%s",sDirName,sFoundFileName);   

                DeleteFile(sTempFileName);   

            }   

        }   

    }   

    tempFind.Close();   

    if(!RemoveDirectory(sDirName))   

    {   

        return FALSE;   

    }   

    return TRUE;   

}   




/////////////////////////////////////////


//下面是应用,CString m_strDir 是一个文件夹路径,如:d:downloadpic



[cpp] view
plaincopyprint?

BOOL DelAll()  

{  

    if(PathFileExists(m_strDir))       

        DeleteDirectory((LPSTR)(LPCTSTR)m_strDir);  

    return 1;  

}  

如果不进行递归删除。你可以使用API函数SHFileOperation,它可以一次删除目录及其下面的子目录和文件。

示例代码:

[cpp] view
plaincopyprint?

<pre name="code" class="cpp">BOOL DelTree(LPCTSTR lpszPath)  

  

{  

  

   SHFILEOPSTRUCT FileOp;  

  

   FileOp.fFlags = FOF_NOCONFIRMATION;  

  

   FileOp.hNameMappings = NULL;  

  

   FileOp.hwnd = NULL;  

  

   FileOp.lpszProgressTitle = NULL;  

  

   FileOp.pFrom = lpszPath;  

  

   FileOp.pTo = NULL;  

  

   FileOp.wFunc = FO_DELETE;  

  

    returnSHFileOperation(&FileOp) == 0;</pre><br>  

<br>  

<pre></pre>  

<p></p>  

<p>}</p>  

<p> </p>  

<pre></pre>  

<pre></pre>  

转自:http://blog.csdn.net/wangjieest/article/details/7000640
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: