亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

實現關機重啟后文件操作

2019-11-10 18:39:18
字體:
來源:轉載
供稿:網友

使用Windows API函數MoveFileEx

函數原型

BOOL MoveFileEx(LPCTSTR lpExistingFileName, // file nameLPCTSTR lpNewFileName, // new file nameDWord dwFlags // move options);

這里附上MSDN的官方解釋

If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts. If lpExistingFileName refers to a directory, the system removes the directory at restart only if the directory is empty.

注意到這里寫的,MoveFileEx可以刪除目錄,只能當目錄為空的時候,那這里只能循環遍歷文件夾遍歷清空了

尋找遍歷文件夾的方法

參考博客c++利用windows api遍歷指定文件夾及其子文件夾中的文件

#include "stdafx.h" #include <iostream> #include "windows.h" #include <string.h> #include <Strsafe.h> using namespace std; //傳入要遍歷的文件夾路徑,并遍歷相應文件夾 void TraverseDirectory(wchar_t Dir[MAX_PATH]) { WIN32_FIND_DATA FindFileData; HANDLE hFind=INVALID_HANDLE_VALUE; wchar_t DirSpec[MAX_PATH]; //定義要遍歷的文件夾的目錄 DWORD dwError; StringCchCopy(DirSpec,MAX_PATH,Dir); StringCchCat(DirSpec,MAX_PATH,TEXT("http://*")); //定義要遍歷的文件夾的完整路徑/* hFind=FindFirstFile(DirSpec,&FindFileData); //找到文件夾中的第一個文件 if(hFind==INVALID_HANDLE_VALUE) //如果hFind句柄創建失敗,輸出錯誤信息 { FindClose(hFind); return; } else { while(FindNextFile(hFind,&FindFileData)!=0) //當文件或者文件夾存在時 { if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=0&&wcscmp(FindFileData.cFileName,L".")==0||wcscmp(FindFileData.cFileName,L"..")==0) //判斷是文件夾&&表示為"."||表示為"." { continue; } if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)!=0) //判斷如果是文件夾 { wchar_t DirAdd[MAX_PATH]; StringCchCopy(DirAdd,MAX_PATH,Dir); StringCchCat(DirAdd,MAX_PATH,TEXT("http://")); StringCchCat(DirAdd,MAX_PATH,FindFileData.cFileName); //拼接得到此文件夾的完整路徑 TraverseDirectory(DirAdd); //實現遞歸調用 } if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)==0) //如果不是文件夾 { wcout<<Dir<<"http://"<<FindFileData.cFileName<<endl; //輸出完整路徑 } } FindClose(hFind); } } int _tmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] ) { locale loc( "chs" ); //支持中文輸出,否則wchar可能無法輸出值為中文的變量 wcout.imbue( loc ); TraverseDirectory(L"C://Users//v_tianboli//Desktop//windows程式設計開發指南"); //遍歷指定的文件夾,此處文件路徑可按具體情況修改 system("pause"); return 0; }

編寫DeleteAllFileReboot樣例程序

這里暫時使用了SOUI的界面庫作為載體。核心函數中暫時使用DeleteFile進行測試:

HRESULT CMainDlg::DeleteFolder(wchar_t Dir[MAX_PATH]){ WIN32_FIND_DATA FindFileData; HANDLE hFind = INVALID_HANDLE_VALUE; wchar_t DirSpec[MAX_PATH]; //定義要遍歷的文件夾的目錄 DWORD dwError; StringCchCopy(DirSpec, MAX_PATH, Dir); StringCchCat(DirSpec, MAX_PATH, TEXT("http://*")); //定義要遍歷的文件夾的完整路徑/* hFind = FindFirstFile(DirSpec, &FindFileData); //找到文件夾中的第一個文件 if (hFind == INVALID_HANDLE_VALUE) //如果hFind句柄創建失敗,輸出錯誤信息 { FindClose(hFind); return S_FALSE; } else { while (FindNextFile(hFind, &FindFileData) != 0)//當文件或者文件夾存在時 { if ((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) != 0 && wcscmp(FindFileData.cFileName, L".") == 0 || wcscmp(FindFileData.cFileName, L"..") == 0) //判斷是文件夾&&表示為"."||表示為"." { continue; } if ((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) != 0) //判斷如果是文件夾 { wchar_t DirAdd[MAX_PATH]; StringCchCopy(DirAdd, MAX_PATH, Dir); StringCchCat(DirAdd, MAX_PATH, TEXT("http://")); StringCchCat(DirAdd, MAX_PATH, FindFileData.cFileName); //拼接得到此文件夾的完整路徑 DeleteFolder(DirAdd); //實現遞歸調用 } if ((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) == 0) //如果不是文件夾 { //拼出完整路徑 if (0 != wcscmp(FindFileData.cFileName, L"test_delete_file.txt")) { SStringW strFileName; strFileName.Format(L"%s//%s", Dir, FindFileData.cFileName); // DeleteFile(strFileName); MoveFileEx(strFileName, NULL, MOVEFILE_DELAY_UNTIL_REBOOT); } } } FindClose(hFind); } return S_OK;}

調用處需要能夠彈出選擇文件夾的選擇窗口,這里參考了[Win32]打開文件/保存文件/選擇文件夾對話框博客里面的方法:

HRESULT CMainDlg::OnChooseFolder(){ TCHAR szBuffer[MAX_PATH] = {0}; BROWSEINFO bi = {0}; bi.hwndOwner = NULL; //擁有著窗口句柄,為NULL表示對話框是非模態的,實際應用中一般都要有這個句柄 bi.pszDisplayName = szBuffer; // 接收文件夾的緩沖區 bi.lpszTitle = TEXT("選擇一個文件夾"); // 標題 bi.ulFlags = BIF_NEWDIALOGSTYLE; LPITEMIDLIST idl = SHBrowseForFolder(&bi); if (SHGetPathFromIDList(idl, szBuffer)) { SOUI::SWindow *pText = FindChildByName2<SOUI::SWindow>(L"text_folder_path"); assert(pText); pText->SetWindowText(szBuffer); } else { SMessageBox(NULL, TEXT("請選擇一個文件夾"), NULL, MB_ICONERROR); } return S_OK;}

稍微完善下代碼,現在已經完成了指定目錄,可以刪除指定目錄下除了文件夾之外的所有內容的功能。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产清自在天天线| 欧美一级高清免费| 97视频网站入口| 亚洲福利视频网站| 日本高清+成人网在线观看| 精品动漫一区二区三区| 亚洲成人精品视频| 国产精品久久久久久久电影| 91啪国产在线| 国产精品丝袜视频| 亚洲男人天堂2019| 日韩成人中文字幕| 久久久国产一区| 国产一区二区三区三区在线观看| 欧美不卡视频一区发布| 伊人久久免费视频| 亚洲精品福利免费在线观看| 亚洲色图狂野欧美| 国产日韩欧美在线看| 欧美激情亚洲视频| 久久精品视频网站| 精品在线欧美视频| 国产成人在线一区二区| 成人网页在线免费观看| 日本久久久久久久久久久| 久久精品国产欧美激情| 亚洲人成网站色ww在线| 亚洲天堂2020| 国产日韩精品在线观看| 欧美视频一区二区三区…| 97福利一区二区| 国产97色在线| 亚洲第一视频在线观看| 92看片淫黄大片看国产片| 日本欧美黄网站| 国产不卡av在线免费观看| 丁香五六月婷婷久久激情| 亚洲人成电影在线| 在线日韩av观看| 欧美在线播放视频| 正在播放亚洲1区| 国产99视频精品免视看7| 成人精品久久av网站| 欧美一区二三区| 日韩精品在线电影| 91在线无精精品一区二区| 亚洲精品国产精品久久清纯直播| 亚洲一区第一页| 日韩美女写真福利在线观看| 亚洲欧美国产高清va在线播| 欧美xxxx18性欧美| 欧美成人精品三级在线观看| 欧美大尺度电影在线观看| 欧美激情精品久久久久久蜜臀| 色综合久久精品亚洲国产| 中国人与牲禽动交精品| 国产精品国产福利国产秒拍| 国产精品成人国产乱一区| 2018中文字幕一区二区三区| 国产精品丝袜高跟| 欧美一级淫片videoshd| 91国产在线精品| 久久五月天色综合| 国产精品香蕉在线观看| 91欧美激情另类亚洲| 欧美精品videosex极品1| 亚洲美腿欧美激情另类| 国产精品麻豆va在线播放| 久久视频国产精品免费视频在线| 国产欧美亚洲精品| 一区二区亚洲欧洲国产日韩| 免费不卡欧美自拍视频| 日韩国产激情在线| 欧美精品在线播放| 高清欧美性猛交xxxx黑人猛交| 欧美激情综合色| 国产精品网站大全| 精品久久久久久中文字幕| 日韩电影免费在线观看中文字幕| 国产日韩欧美日韩| 日韩美女在线播放| 亚洲视频电影图片偷拍一区| 91精品在线一区| 日韩二区三区在线| 992tv成人免费视频| 51ⅴ精品国产91久久久久久| 欧美又大又硬又粗bbbbb| 97久久精品在线| 日本三级韩国三级久久| 伊人青青综合网站| 91在线高清视频| 欧美伊久线香蕉线新在线| 久久久噜噜噜久噜久久| 欧美在线视频一区| 亚洲国产又黄又爽女人高潮的| 成人天堂噜噜噜| 国产视频福利一区| 26uuu亚洲伊人春色| 欧美国产日韩中文字幕在线| 疯狂欧美牲乱大交777| 日韩av在线播放资源| 欧美国产日韩中文字幕在线| 成人免费在线视频网站| 亚洲国产欧美一区二区三区久久| 亚洲综合色激情五月| 亚洲精品成a人在线观看| 国产成人91久久精品| 亚洲摸下面视频| 亚洲网站在线观看| 国产精品自拍小视频| 久久精品亚洲精品| 久久久999精品| 国产精品视频色| 国语自产精品视频在线看| 欧美精品久久久久a| 精品久久久精品| 欧美裸体视频网站| 久久久人成影片一区二区三区| 国产在线a不卡| 国产+成+人+亚洲欧洲| 欧美色videos| 欧美电影免费观看高清| 一区二区欧美日韩视频| 国产精品v片在线观看不卡| 日本一区二区在线免费播放| 韩国日本不卡在线| 久久天天躁狠狠躁夜夜躁| 久热99视频在线观看| 国产成人高潮免费观看精品| 成人a在线视频| 国产精品丝袜久久久久久高清| 中文字幕一精品亚洲无线一区| 91av成人在线| 欧美激情xxxx性bbbb| 久久99精品视频一区97| 国产精品国产三级国产专播精品人| 国产日韩在线免费| 中文字幕在线看视频国产欧美在线看完整| 亚洲精品大尺度| 国产亚洲欧洲在线| 久久久久久一区二区三区| 国产不卡av在线| 精品香蕉一区二区三区| 国产精品第8页| 国产91九色视频| 国产精品第1页| 日韩欧美在线视频免费观看| 国产一区二区黑人欧美xxxx| 色先锋资源久久综合5566| 国产aaa精品| 欧美国产中文字幕| 精品国内自产拍在线观看| 国产精品久久久久久久app| 成人免费直播live| 亚洲欧美日韩一区在线| 不卡在线观看电视剧完整版| 欧美性猛交xxxxx免费看| 日韩精品在线免费播放| 色妞在线综合亚洲欧美| 九九久久久久99精品| 91美女福利视频高清| 日韩精品极品在线观看| 国产99久久久欧美黑人| 国产精品免费视频xxxx|