Win32 刪除非空目錄

2021-09-22 18:49:24 字數 1090 閱讀 3386

deletefile();  //這是刪除檔案的win32 api

removefile();  //這是刪除空目錄的win32 api(注意,如果目錄不為空的話,這個函式將執行失敗)

如果目錄不為空的話,我知道的有兩種方法刪除:

1.呼叫命令列

system("rmdir /s /q dirname");  //dirname是要刪除的目錄名稱,這種方式,在使用mfc程式的時候出閃過乙個cmd的視窗

/s是級聯刪除  /q 是不提示(在命令列下操作的話,如果不加這個開關,會有提示確認是否刪除目錄,而在程式中不允許停下)

2.使用win32 api

//刪除當前目錄下的tempdir目錄(子目錄也將一併刪除)

shfileopstruct fileop;

fileop.fflags = fof_noconfirmation;

fileop.hwnd = null;

fileop.lpszprogresstitle = null;

fileop.pfrom = ".\\tempdir";

fileop.pto = null;

fileop.wfunc = fo_delete;

shfileoperation(&fileop);

此處有乙個地方要留心一下,就是fileop.pfrom這個引數,它使用的字串一定是要'\0'結尾的,這個地方使用".\\tempdir",這個字串預設的結束字元就是'\0',所以如果存在這個目錄或者檔案的話,一定可以將其刪除,如果像下面這樣寫的話就會出錯:

std::string delpath = ".\\tempdir";

...

fileop.pfrom = delpath.c_str();  // 此時字串沒有以'\0'結尾,所以刪除的時候會出錯

Win32 刪除非空目錄

deletefile 這是刪除檔案的win32 api removefile 這是刪除空目錄的win32 api 注意,如果目錄不為空的話,這個函式將執行失敗 如果目錄不為空的話,我知道的有兩種方法刪除 1.呼叫命令列 system rmdir s q dirname dirname是要刪除的目錄名...

linux下 rm 刪除非空目錄

rm命令 在linux中建立檔案很容易,系統中隨時會有檔案變得過時且毫無用處。使用者可以用rm命令將其刪除。該命令的功能為刪除乙個目錄中的乙個或多個檔案或目錄,它也可以將某個目錄及其下的所有檔案及子目錄均刪除。對於鏈結檔案,只是刪除了鏈結,原有檔案均保持不變。rm命令的一般形式為 rm 選項 檔案 ...

C 呼叫API函式刪除非空目錄

include include include using namespace std bool deletedirectory lpctstr strdes while bfinished else bfinished findnextfile hsearch,filedata false tru...