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

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

實現關機重啟后文件操作

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

使用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
日韩中文字幕在线视频| 热久久视久久精品18亚洲精品| 欧美精品性视频| 久久久亚洲影院你懂的| 欧美日韩ab片| 国产欧美 在线欧美| 日韩精品一区二区视频| 午夜精品一区二区三区视频免费看| 欧美日韩亚洲国产一区| 色婷婷综合久久久久| 久久久久久久久久久国产| 国产一区在线播放| 91九色视频在线| 97在线观看视频| 久久成人这里只有精品| 久久久国产精品视频| 日本午夜精品理论片a级appf发布| 26uuu亚洲国产精品| 亚洲国产精品福利| 久久天天躁狠狠躁夜夜爽蜜月| 大量国产精品视频| 久久久噜久噜久久综合| 欧美激情一级精品国产| 精品久久久久久久久久久久久久| 激情成人中文字幕| 亚洲色图15p| 成人福利免费观看| 成人免费网站在线看| 国产免费一区二区三区在线能观看| 91精品久久久久久久久中文字幕| 欧美怡春院一区二区三区| 日韩免费电影在线观看| 国产成人精品久久| 久久久久久伊人| 亚洲精品国产电影| 久久久97精品| 色综合色综合网色综合| 欧美精品电影在线| 成人乱色短篇合集| 成人a视频在线观看| 97国产在线视频| 欧美重口另类videos人妖| 日本一区二区三区四区视频| 性亚洲最疯狂xxxx高清| 97高清免费视频| 久久久久亚洲精品成人网小说| 亚洲人成免费电影| 色777狠狠综合秋免鲁丝| 久久精品视频在线| 成人字幕网zmw| 亚洲日本aⅴ片在线观看香蕉| 少妇激情综合网| 国产精品久久97| 精品呦交小u女在线| 最近2019年手机中文字幕| 成人福利在线观看| 国产精品美女视频网站| 亚洲美腿欧美激情另类| 日本高清不卡在线| 中文字幕在线观看亚洲| 亚洲三级免费看| 成人a免费视频| 久久久久亚洲精品成人网小说| 麻豆精品精华液| 午夜免费久久久久| 精品国内亚洲在观看18黄| 午夜精品99久久免费| 8x拔播拔播x8国产精品| 亚洲精品综合久久中文字幕| 久久人人爽人人爽爽久久| 一区二区国产精品视频| 久久精品男人天堂| 久久久天堂国产精品女人| 日韩av日韩在线观看| 久久视频在线免费观看| 欧美激情图片区| 亚洲国产精品高清久久久| 久久精品久久精品亚洲人| 亚洲成人1234| 国产欧美va欧美va香蕉在| 免费97视频在线精品国自产拍| 国产欧美韩国高清| 亚洲欧洲日韩国产| 亚洲欧美综合精品久久成人| 亚洲一区二区三区毛片| 国产精品视频精品| 色七七影院综合| 国产精品自在线| 中文字幕亚洲欧美在线| 日产精品99久久久久久| 欧美多人乱p欧美4p久久| 色综合亚洲精品激情狠狠| 欧美成人激情视频免费观看| 成人激情免费在线| 亚洲精品一区二区在线| 欧美成人午夜剧场免费观看| 日韩欧美国产激情| 久久久久北条麻妃免费看| 国产精品自拍偷拍视频| 亚洲电影在线观看| 亚洲视频在线看| 高跟丝袜欧美一区| 国产日韩在线一区| 国内精品久久久久久久| 欧美疯狂做受xxxx高潮| 中文字幕国产日韩| 国产69精品99久久久久久宅男| 91精品国产91久久久久| 国产精品美女久久久久av超清| 大桥未久av一区二区三区| 国产热re99久久6国产精品| 欧美韩国理论所午夜片917电影| 欧美一区二三区| 国产日本欧美一区二区三区在线| 欧美剧在线观看| 亚洲高清久久久久久| 亚洲第一中文字幕在线观看| 宅男66日本亚洲欧美视频| 亚洲福利视频在线| 孩xxxx性bbbb欧美| 最近中文字幕日韩精品| 久久久久久com| 亚洲 日韩 国产第一| 国模精品视频一区二区| 欧美日韩亚洲91| 91中文在线观看| 亚洲精品小视频在线观看| 日韩欧美中文第一页| 性色av一区二区三区免费| 神马国产精品影院av| 国产日韩欧美电影在线观看| 日本欧美爱爱爱| 亚洲精品美女久久久久| 日本欧美一级片| 欧美亚洲在线观看| 91在线视频导航| 国产精品久久久久久久久免费看| 国产亚洲激情在线| 色yeye香蕉凹凸一区二区av| 久久久国产91| 成人h视频在线观看播放| 欧美日韩国产中文精品字幕自在自线| 欧美—级高清免费播放| 国产香蕉一区二区三区在线视频| 欧美插天视频在线播放| 国自产精品手机在线观看视频| 久久中文字幕国产| 美日韩精品免费视频| 17婷婷久久www| 国产成人综合亚洲| 国产精品丝袜久久久久久不卡| 亚洲人成网在线播放| www亚洲欧美| 国产小视频国产精品| 国产日韩综合一区二区性色av| 欧美性极品xxxx做受| 欧美中文字幕在线视频| 欧美中文字幕在线观看| 亚洲精品自拍视频| 国产一区二区三区视频免费| 在线观看亚洲视频| 亚洲xxx视频| 久久99精品国产99久久6尤物| 日韩美女免费观看|