比如我的d盤裡有乙個檔案d:\test,此時test為乙個空資料夾:
建立此資料夾的方法為:
createdirectory(_t("d:\\test"),null);
刪除此空資料夾的方法為:
removedirectory((_t("d:\\test"));
這只能刪除資料夾內毫無內容的空資料夾,不能刪除具有子資料夾或子檔案的資料夾.
這裡使用 shfileoperation 這個方法,但是用的是它的引數結構體:
函式原型:
#include
winshellapi int winapi shfileoperation(lpshfileopstruct lpfileop);
shfileopstruct
此結構體原型為:
typedef struct _shfileopstruct
shfileopstruct, far *lpshfileopstruct比如現在的刪除資料夾函式為
bool deletefolderdirectory( lpctstr lpszpath)
shfileopstruct fileop;
zeromemory((void*)&fileop,sizeof(shfileopstruct));
fileop.flag = fof_noconfirmation;
這個函式就可以刪除具有子資料夾或檔案的資料夾了.
但是對於 shfileopstruct 有乙個要求,就是
pform 或者pto 可以指定多個路徑,在結束之前要加 '\0\0';才可以正常結束,
因為我使用的是cstring 型別的字串處理,它結束時候的處理是不一樣的,cstring 內部處理是乙個 char* ,然後結束是加了乙個'\0'結束的,
因此將 cstring 型別的變數 其內容拷貝到陣列當中:
tchar arrtemp[100] = ;
memcpy(arrtemp,folderpath+_t("\0\0"),(folderpath.getlength()+2)*sizeof(tchar));
deletefolderdirectory(arrtemp);
這樣就不會報讀取磁碟錯誤的報告了.
刪除子資料夾
你是一位系統管理員,手裡有乙份資料夾列表 folder,你的任務是要刪除該列表中的所有 子資料夾,並以 任意順序 返回剩下的資料夾。我們這樣定義 子資料夾 如果資料夾 folder i 位於另乙個資料夾 folder j 下,那麼 folder i 就是 folder j 的子資料夾。資料夾的 路徑...
利用遞迴刪除資料夾(資料夾中套資料夾)
刪除目錄 bool deldir const ansistring p if p.isempty p.length 4 return false 引數必須大於3,即不能為磁碟根目錄或空白 int len p.length char path p.c str ansistring dir ansist...
建立或刪除資料夾
1.在實現上傳功能時,總會用到檢查指定目錄是否存在,如果存在,刪除並重新建立乙個空的資料夾 todo 判斷資料夾是否存在,如果存在刪除,並重新建立乙個空的資料夾 author eagle param path 檔案路徑 private void createfolder string path el...