自动查找并删除VC生成的临时文件
關(guān)鍵字
臨時(shí)文件 通配符 遞歸 查找文件 文件夾選擇對(duì)話框 INI文件
正文
VC產(chǎn)生的臨時(shí)文件有時(shí)真的很煩人!當(dāng)你編譯一個(gè)程序,突然系統(tǒng)彈出一個(gè)對(duì)話框:“D盤(pán)已經(jīng)沒(méi)有足夠的空間,請(qǐng)問(wèn)需要進(jìn)行磁盤(pán)清理嗎 ”,而它只能清掉了Nkb的東東,你有什么理由不自己寫(xiě)一個(gè)專門(mén)清理VC垃圾的小工具呢?隔一段時(shí)間運(yùn)行一次,徹底清除指定類型的垃圾文件:干干凈凈,中國(guó)人,奇強(qiáng)!
很明顯,這個(gè)程序的核心代碼肯定是一個(gè)有通配符的功能的遞歸查找文件的函數(shù)。我的想法是先查找給定目錄下的所有符合條件的文件,再遞歸查找下級(jí)文件夾 下所有符合條件的文件。為了保證其封閉性,我用了一個(gè) CStringList& 變量來(lái)保存搜索結(jié)果。如果您有好的建議,請(qǐng)給我發(fā)郵件。下面是代碼:
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 兩個(gè)API函數(shù)來(lái)打開(kāi)文件夾選擇的對(duì)話框,GetProvateProfileInt、Get(/Write)PrivateProfileString、WritePrivateProfileSection 等函數(shù)以方便用戶自定義文件類型。因?yàn)槌绦虮容^簡(jiǎn)單,里面的一些錯(cuò)誤信息顯示也就沒(méi)有單獨(dú)抽象出來(lái)。不提倡讀者這樣寫(xiě),呵呵。
轉(zhuǎn)載于:https://www.cnblogs.com/rogee/archive/2011/03/31/2000473.html
總結(jié)
以上是生活随笔為你收集整理的自动查找并删除VC生成的临时文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小波变换和motion信号处理(三)(转
- 下一篇: DELPHI实现游戏内存的修改