自动查找并删除VC生成的临时文件
生活随笔
收集整理的這篇文章主要介紹了
自动查找并删除VC生成的临时文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關鍵字
臨時文件 通配符 遞歸 查找文件 文件夾選擇對話框 INI文件
正文
VC產生的臨時文件有時真的很煩人!當你編譯一個程序,突然系統彈出一個對話框:“D盤已經沒有足夠的空間,請問需要進行磁盤清理嗎 ”,而它只能清掉了Nkb的東東,你有什么理由不自己寫一個專門清理VC垃圾的小工具呢?隔一段時間運行一次,徹底清除指定類型的垃圾文件:干干凈凈,中國人,奇強!
很明顯,這個程序的核心代碼肯定是一個有通配符的功能的遞歸查找文件的函數。我的想法是先查找給定目錄下的所有符合條件的文件,再遞歸查找下級文件夾 下所有符合條件的文件。為了保證其封閉性,我用了一個 CStringList& 變量來保存搜索結果。如果您有好的建議,請給我發郵件。下面是代碼:
CStringList& CDelTempDlg::SearchFile(CString strFileName, CString strPath, CStringList &listFileName) { char szFullPathName[MAX_PATH]; /*static*/ WIN32_FIND_DATA findData; SetCurrentDirectory(strPath); HANDLE hFindHandle = FindFirstFile(strFileName, &findData); if ((hFindHandle != INVALID_HANDLE_VALUE)) { if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { GetFullPathName(findData.cFileName, MAX_PATH, szFullPathName, NULL); listFileName.AddTail(szFullPathName); } while (FindNextFile(hFindHandle, &findData) != 0) { if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { GetFullPathName(findData.cFileName, MAX_PATH, szFullPathName, NULL); listFileName.AddTail(szFullPathName); } } FindClose(hFindHandle); } hFindHandle = FindFirstFile(\"*\", &findData); if ((hFindHandle != INVALID_HANDLE_VALUE)) { if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (findData.cFileName[0] != \''.\'') { SearchFile(strFileName, findData.cFileName, listFileName); SetCurrentDirectory(\"..\"); } }while (FindNextFile(hFindHandle, &findData) != 0) { if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (findData.cFileName[0] != \''.\'') { SearchFile(strFileName, findData.cFileName, listFileName); SetCurrentDirectory(\"..\"); } } } FindClose(hFindHandle); } return listFileName; }另外,程序中還用到了 SHBrowseForFolder、SHGetPathFromIDList 兩個API函數來打開文件夾選擇的對話框,GetProvateProfileInt、Get(/Write)PrivateProfileString、WritePrivateProfileSection 等函數以方便用戶自定義文件類型。因為程序比較簡單,里面的一些錯誤信息顯示也就沒有單獨抽象出來。不提倡讀者這樣寫,呵呵。
轉載于:https://www.cnblogs.com/rogee/archive/2011/03/31/2000473.html
總結
以上是生活随笔為你收集整理的自动查找并删除VC生成的临时文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小波变换和motion信号处理(三)(转
- 下一篇: DELPHI实现游戏内存的修改