選擇目錄對話框
void C資源共享吧視頻廣告清理工具Dlg::OnBnClickedCls() { // 清空編輯框內容 m_Edit.SetWindowTextW(L""); m_Edit2.SetWindowTextW(L""); // 打開一個文件夾選擇對話框(選擇目錄) CFolderPickerDialog dlg; // 設置對話框標題 dlg.m_ofn.lpstrTitle = TEXT("請選擇清理目錄"); // 點擊了選擇文件夾才去清理垃圾 if (dlg.DoModal() == TRUE) { // 獲取選則的目錄 CString path = dlg.GetFolderPath(); // 設置編輯框內容(m_Edit 是 CEdit 類型) m_Edit.SetWindowTextW(path); // 清理廣告 ClsAd(path); } else { ::MessageBox(0, L"請選擇清理目錄!", L"提示", 0); } }
選擇文件對話框
// 1、打開一個文件夾選擇對話框 CFileDialog dlg(TRUE); if (dlg.DoModal() == IDOK) { CString path = dlg.GetFolderPath(); // 2、獲取選擇的文件的后綴名,判斷是否是DLL CString path1 = dlg.GetFileName(); PCTSTR FileType = PathFindExtension(path1); if (wcscmp(FileType, L".dll") != 0) { m_Edit2.SetWindowText(L""); return; } // 3、將文件路徑顯示到編輯框 m_Edit2.SetWindowText(path + L"\\" + path1); }
指定目錄遍歷文件
void C資源共享吧視頻廣告清理工具Dlg::ClsAd(const CString path) { // 調用FindFirstFile找到這個目錄下的第一個文件/文件夾 WIN32_FIND_DATA fData = { 0 }; HANDLE hFind = FindFirstFile(path + "\\*", &fData); if (hFind == INVALID_HANDLE_VALUE) { ::MessageBox(0, L"查找文件失敗!", L"提示", 0); return; } // 再循環調用FindNextFile得到后續所有的文件/文件夾 do { CString strName(fData.cFileName); // 過濾掉當前目錄和上一級目錄 if (wcscmp(fData.cFileName, L".") == 0 || wcscmp(fData.cFileName, L"..") == 0) { continue; } // 查找廣告文件刪除 if (wcscmp(fData.cFileName, L"本教程由資源共享吧提供.url") == 0 || wcscmp(fData.cFileName, L"下載必看.txt") == 0 || wcscmp(fData.cFileName, L"更多精品教程.url") == 0) { CString strText = _T(""); // 獲取編輯框2當前文本 m_Edit2.GetWindowTextW(strText); // 拼接字符串 strText += path + L"\\" + strName + L"已刪除!\r\n"; // 設置編輯框2文本 m_Edit2.SetWindowTextW(strText); // 刪除文件 DeleteFile(path + L"\\" + strName); } // 如果文件是一個文件夾的話, 就遞歸遍歷 if (fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { ClsAd(path + L"\\" + strName); } } while (FindNextFile(hFind, &fData)); }