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

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

實現關機重啟后文件操作

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

使用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
亚洲欧美在线一区二区| 国产日韩欧美中文| 国产成人免费av电影| 国产精品久久久| 九九精品在线视频| 亚洲另类激情图| 亚洲a级在线播放观看| 日本乱人伦a精品| 国产精品视频一区二区三区四| 国产91露脸中文字幕在线| 日韩av在线一区二区| 不卡av在线播放| 精品久久久久久中文字幕一区奶水| 国产日韩在线看| 精品久久久一区二区| 日韩天堂在线视频| 国产999精品| 国产免费久久av| 亚洲视频一区二区| 亚洲变态欧美另类捆绑| 国产精品h在线观看| 久久久国产精品视频| 国产精品视频自拍| 日本成熟性欧美| 黄网动漫久久久| 成人激情综合网| 久久久久久久久久久免费精品| 精品视频www| 久久99国产精品自在自在app| 精品久久久国产| 国产欧美精品一区二区三区-老狼| 一区国产精品视频| 久久久天堂国产精品女人| 成人性教育视频在线观看| 国产视频精品免费播放| 最近日韩中文字幕中文| 国产美女精品免费电影| 欧美成人免费一级人片100| 日韩精品福利在线| 久久精品男人天堂| 亚洲国模精品一区| 91网站在线看| 亚洲女人被黑人巨大进入al| 亚洲欧美综合图区| 欧美精品第一页在线播放| 亚洲曰本av电影| 九九热最新视频//这里只有精品| 亚洲黄色有码视频| 国产91精品久| 欧日韩在线观看| 国产精品久久久久aaaa九色| 福利一区福利二区微拍刺激| 色七七影院综合| 久久国产精品99国产精| 欧美激情视频一区二区| 国产精品一区二区久久久| 国精产品一区一区三区有限在线| 欧美一区第一页| 国产亚洲欧美视频| 成人国产精品久久久久久亚洲| 77777少妇光屁股久久一区| 成人有码视频在线播放| 亚洲图片欧美午夜| 亚洲三级av在线| 一本色道久久88综合日韩精品| 亚洲最新视频在线| 日韩视频免费中文字幕| 国产欧美精品一区二区三区介绍| 亚洲天堂av在线播放| 992tv成人免费视频| 欧美日韩成人在线观看| 欧美性猛交xxxx黑人猛交| 亚洲乱码国产乱码精品精| 国产欧美韩国高清| 精品二区三区线观看| 亚洲人成网站777色婷婷| 精品女同一区二区三区在线播放| 日韩av在线网址| 久久人人97超碰精品888| 成人久久18免费网站图片| 亚洲韩国青草视频| 日韩亚洲欧美成人| 亚洲网站在线看| 欧美日韩国产成人| 91精品啪在线观看麻豆免费| 亚洲成人黄色在线观看| 亚洲福利在线看| 国产精品va在线| 中文字幕亚洲欧美一区二区三区| 亚洲欧洲中文天堂| 九九久久久久久久久激情| 亚洲一区久久久| 欧美激情一区二区三区在线视频观看| 中文字幕亚洲一区二区三区| 国产精品视频公开费视频| 日韩高清av一区二区三区| 日韩美女写真福利在线观看| 欧美视频在线观看 亚洲欧| 欧美国产日韩xxxxx| 88国产精品欧美一区二区三区| 成人伊人精品色xxxx视频| 91性高湖久久久久久久久_久久99| 亚洲欧美在线x视频| 91免费看国产| 久久激情视频免费观看| 国产午夜一区二区| 隔壁老王国产在线精品| 在线观看日韩欧美| 精品视频久久久久久| 亚洲欧洲美洲在线综合| 91精品久久久久久久久久入口| 欧美国产极速在线| 精品五月天久久| 国精产品一区一区三区有限在线| 26uuu国产精品视频| 日韩免费在线观看视频| 成人h片在线播放免费网站| 欧美区二区三区| 日韩电影大全免费观看2023年上| 国产视频精品va久久久久久| 欧美老女人在线视频| 亚洲精品国产福利| 国产精品午夜国产小视频| 国产伦精品免费视频| 91国内产香蕉| 日韩av在线免费看| 久久国产精品网站| 国产精品夜间视频香蕉| 亚洲国内高清视频| 亚洲第一精品夜夜躁人人躁| 亚洲欧洲日韩国产| 最近2019年好看中文字幕视频| 午夜精品久久久99热福利| 日本a级片电影一区二区| 欧美成人在线免费视频| 亚洲影院色在线观看免费| 久久久999国产| 精品国产欧美一区二区三区成人| 久久影视电视剧凤归四时歌| 欧美激情性做爰免费视频| 中文字幕欧美日韩在线| 亚洲女在线观看| 亚洲精品网址在线观看| 中文字幕亚洲一区二区三区五十路| 欧美区二区三区| 这里只有精品在线播放| 欧美在线精品免播放器视频| 亚洲精品一区久久久久久| 日韩免费在线播放| 色偷偷88888欧美精品久久久| 一本色道久久综合狠狠躁篇的优点| 18久久久久久| 欧美另类在线观看| 国产色视频一区| 欧美影院久久久| 97视频在线观看成人| 亚洲人成网站777色婷婷| 国产精品中文久久久久久久| 亚洲成人中文字幕| 国产精品自产拍高潮在线观看| 亚洲免费影视第一页| 久久精品国产久精国产思思| 国产精品久久久久9999| 亚洲国产精品国自产拍av秋霞|