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 指定乙個或數個檔案或目錄列表。萬用字元可被用來 刪除多個檔案。如果指定了乙個目錄,目錄中的所 有檔案都會被刪...