刪除資料夾和資料夾下的檔案

2021-09-28 15:29:25 字數 2598 閱讀 6214

c++沒有刪除檔案的功能,可借助windows api實現該功能,還可以依據呼叫c執行庫函式實現刪除功能。

mfc程式中

刪除檔案的函式為deletefile

刪除資料夾的函式為removedirectory

參考自:

刪除資料夾和資料夾下的子檔案函式實現如下:

bool deletedirectory(cstring strpathname)

; wsprintf(stempfilefind, _t("%s\\*.*"), strpathname);

bool isfinded = tempfind.findfile(stempfilefind);

while (isfinded)

; _tcscpy(sfoundfilename, tempfind.getfilename().getbuffer(max_path));

//when current filename is directory,

if (tempfind.isdirectory())

;wsprintf(stempdir, _t("%s\\%s"), strpathname, sfoundfilename);

if (!deletedirectory(stempdir))

}else

;wsprintf(stempfilename, _t("%s\\%s"), strpathname, sfoundfilename);

//change file attribute to file_attribute_readonly

dword dwattribute = getfileattributes(stempfilename);

if (dwattribute & file_attribute_readonly)

if (!deletefile(stempfilename))

}} }

tempfind.close();

//delete this folder after delete all files in the folder

if (!removedirectory(strpathname))

return true;

}

函式呼叫如下:

cstring deletefoldername = l"d:\\mydeletefile";

if (deletefoldername == l"")

if (!deletedirectory(deletefoldername))

參考自:

特別要注意:

當檔案為唯讀時,不能直接被刪除,需要修改其屬性,去掉唯讀性。

呼叫setfileattributes函式。

參考自:

2、不使用mfc的程式中

#include //_access fun

#include //_mkdir fun

bool removefilesinfolder(const char* szfiledir);

bool removefilesinfolder(const char* szfiledir)

else

} while (findnextfilea(hfind, &wfd));

bres = findclose(hfind);

//bres = removedirectorya(szfiledir);

return bres;

}bool isfolderexist(const char* folder)

//create directory until last '\\' symbol

//so if want to create the last folder, '\\' symbol should be add before the directorypath

bool createdirectorypath(char* directorypath)

if (dirpathlen > filename_max)

char tmpdirpath[filename_max] = ;

for (int i = 0; i < dirpathlen; ++i)

}} return true;

}

呼叫方法:

tchar curdir[max_path];

getcurrentdirectory(max_path, curdir);

tchar brokenimagefolder[max_path] = "checkvideo";

cstring strbrokenimagefilepath.format(text("%s\\%s"), curdir, brokenimagefolder);

//if checkvideo folder is exist, empty it or create it

if (true == isfolderexist(strbrokenimagefilepath))

}else

str.releasebuffer();

}

刪除資料夾和資料夾下東西

解決的辦法 刪除資料夾 param filepathandname string 資料夾路徑及名稱 如c fqf param filecontent string return boolean public void delfolder string folderpath catch excepti...

python 實現徹底刪除資料夾和資料夾下的檔案

python 中有很多內建庫可以幫忙用來刪除資料夾和檔案,當面對要刪除多個非空資料夾,並且目錄層次大於3層以上時,僅使用一種內建方法是無法達到徹底刪除資料夾和檔案的效果的,比較low的方式是多次呼叫直到刪除。但是,我們可以結合多個內建庫函式,達到一次刪除非空資料夾,不管其目錄層次有多深。import...

刪除檔案和資料夾

一 刪除檔案 使用 del 命令,可以檢視幫助資訊 del p f s q a attributes names erase p f s q a attributes names names 指定乙個或數個檔案或目錄列表。萬用字元可被用來 刪除多個檔案。如果指定了乙個目錄,目錄中的所 有檔案都會被刪...