请问使用win32 API如何实现删除一个文件夹? 谢谢!

解决方案 »

  1.   

    RemoveDirectoryBOOL RemoveDirectory(
    LPCTSTR lpPathName); 
    但是这个文件夹不能有文件存在的,只能删除空的文件夹This function deletes an existing empty directory
      

  2.   

    这个估计可以删除整个文件夹//删除文件夹
    BOOL DeleteFolder(LPSTR pszFolder)
    {
    SHFILEOPSTRUCT fos;
    ZeroMemory(&fos,sizeof(fos));
    fos.hwnd=HWND_DESKTOP;
    fos.wFunc=FO_DELETE;
    fos.fFlags=FOF_SILENT|FOF_ALLOWUNDO; fos.pFrom=pszFolder;
    //删除文件夹及其内容
    if(0!=SHFileoperation(&fos))
    return FALSE;
    return TRUE;
    }
      

  3.   


    void DeleteFolder(CString sPath)
    {
    CFileFind ff;
    BOOL bFound;
    bFound = ff.FindFile(sPath + "\\*.*");
    while(bFound){
    bFound = ff.FindNextFile();
    CString sFilePath = ff.GetFilePath(); if(ff.IsDirectory()){
    if(!ff.IsDots())
    DeleteFolder(sFilePath);
    }else{
    if(ff.IsReadOnly()){
    SetFileAttributes(sFilePath, FILE_ATTRIBUTE_NORMAL);
    }
    DeleteFile(sFilePath);
    }
    }
    ff.Close();
    SetFileAttributes(sPath, FILE_ATTRIBUTE_NORMAL);
    RemoveDirectory(sPath);
    }
      

  4.   

    SHFileoperation  不管是空目录还是有文件,都可以删除的
      

  5.   

    当然是SHFileoperation,万能删除...