c++フォルダの削除


回転:http://blog.csdn.net/sshhbb/archive/2010/12/07/6061029.aspx
 
言語自体はファイルやフォルダを削除することができません。彼らはwindowsオペレーティングシステムのものですので、そのアプリの関数を借りなければなりません。
その一:shellを使う  インターフェース:
void FileDelete(CString directory){ SHFILEOSTRUCT    shFileOp; char      stricurrentPath[MAX_PATH] memset(&shfileOp、0、sizeof(shFileOp);     Get Currrent Directory(MAX_PATH、structPath); stracatus(structory); structurentPath[streen]+1==0 shFileOp.wFnc    = FODELETE shfileOp.pFrom    = structurentPath shfileOp.pTo    = NULL shfileOp.fFlags    = FOFUSILENT|FOFuNOCONFIRMATION FOF噬FOF柋CONFIRMMKDIR;
 SHFileOperation(&shFileOp);
この関数を使用すると、萼include<Shlwapi.h>芫pragma commment(lib,「Shlwapi.lib」)が必要です。  彼を使ってdirectoryとその下のすべてのファイルを静かに削除できます。共有フォルダを削除する時にエラーやヒントがあると聞きましたが、試したことがありません。でも、私はsystemを使って削除をする時、共有フォルダの下の削除は間違いがあります。
第二に、MFCのCFileFindを使ってファイルを再帰的に巡回し、ファイルとフォルダを削除する。
 book DeleteDirectory(char*str DirName){    CFileFind tempFind        char streTempfileFind[MAX_PATH]
    sprintf(streTempFileFind、“%s/*.*”,streDirName);
    BOOL Is Finded=tempFindle.FindFile(streTemp FileFind);
    while(Is Finded)    {        Is Finded=tempFind.FindNext File()
        if(!tempFind.Is Dotツ()        {            char streFound FileName[MAXUPATH]
            strcpy(streFoundFileName,tempFind.Get FileName().GetBuffer(MAXUPATH);
            if(tempFind.Is Directory()            {                char streTempDir[MAXUPATH]
                sprintf(streTempDir、「%s/%s」、streDirName、streFoundFileName);
                DeleteDirectory(streTempDir);            }             else            {                char streTemp FileName[MAXUPATH]
                sprintf(streTempFileName、“%s//%s”、streDirName、streFoundFileName);
                DeleteFile(sTempFileName);            }         }     }
    tempfind.C lose()
    if(!RemoveDirectory(straDirName)    {        return FALSE    }
    return TRUE;}
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
回転:http://zhidao.baidu.com/question/188089955.html
 
 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main()
{
 char str[120] ="RMDIR /S "; //   /Q          
 char str2[100]; //        
 printf("         :/n"); 
 scanf("%s",str2);
 strcat(str,str2);
 system(str);
 system("pause");
} 

 

     ,     dos  , C++    system  
  system("RMDIR aaa");
    aaa    
dos     cmd  help    
////////////////////////////////////////////////////////////////////////////
http://topic.csdn.net/u/20090126/23/950e840e-8ba9-4be7-94ba-2e48e7cdf862.html
BOOL DeleteDir(char * path)
{
    WIN32_FIND_DATA finddata;
    HANDLE hfind;
    char * pdir;

    pdir=new char[strlen(path)+5];
    strcpy(pdir,path);
    if(path[strlen(path)-1]!='//')
        strcat(pdir,"//*.*");
    else
        strcat(pdir,"*.*");

    hfind=FindFirstFile(pdir,&finddata);
    if(hfind==INVALID_HANDLE_VALUE)
        return FALSE;

    delete []pdir;
    do
    {
        pdir=new char[strlen(path)+strlen(finddata.cFileName)+2];
        sprintf(pdir,"%s//%s",path,finddata.cFileName);
        if(strcmp(finddata.cFileName,".")==0
            ||strcmp(finddata.cFileName,"..")==0)
        {
            RemoveDirectory(pdir);
            continue;
        }

        if((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)==0)
            DeleteFile(pdir);
        else
            DeleteDir(pdir);
        delete []pdir;
    }while(FindNextFile(hfind,&finddata));

    if(RemoveDirectory(path))
        return TRUE;
    else
        return FALSE;
}
//////////////////////////////////////////////////////////////////////

:http://zhidao.baidu.com/question/96292128.html

c++

: char dir[] = "d://test//"; DeleteEmptyDirectories(dir); ///////////////////////////////////////////////////// void DeleteEmptyDirectories(const char *dir) { WIN32_FIND_DATA finder;     HANDLE hFileFind;     char search[MAX_PATH]; strcpy(search, dir); strcat(search, "*.*");     hFileFind = FindFirstFile(search, &finder);     if (hFileFind != INVALID_HANDLE_VALUE)     {         do         {             char path[MAX_PATH];             strcpy(path, dir);             strcat(path, finder.cFileName);       if ((finder.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)     && strcmp(finder.cFileName, ".")     && strcmp(finder.cFileName, ".."))    {         char subdir[MAX_PATH];     strcpy(subdir, path);     strcat(subdir, "//");     DeleteEmptyDirectories(subdir);     // AfxMessageBox(subdir);     RemoveDirectory(path);    }            } while (FindNextFile(hFileFind, &finder) != 0);           FindClose(hFileFind);     } }
  , SHFILEOPSTRUCT、SHFileOperation        。