MFC_選擇目錄對話框_選擇文件對話框_指定目錄遍歷文件


選擇目錄對話框

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));
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM