• 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"已删除!
    ";
                // 设置编辑框2文本
                m_Edit2.SetWindowTextW(strText);
                // 删除文件
                DeleteFile(path + L"\" + strName);
            }
            // 如果文件是一个文件夹的话, 就递归遍历
            if (fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                ClsAd(path + L"\" + strName);
            }
        } while (FindNextFile(hFind, &fData));
    }
  • 相关阅读:
    SQL Server 链接服务器连接 SQLite数据库文件
    HighCharts初测试
    集锦
    MDX 脚本语句 -- Scope
    七年一轮回
    20145205武钰《网络对抗》web安全基础实践
    20145205 武钰 《网络对抗》Exp8 Web基础
    20145205《网络攻防》网络欺诈技术防范
    20145205《网络对抗》信息收集和漏洞扫描技术
    20145205武钰_Exp5 MSF基础应用
  • 原文地址:https://www.cnblogs.com/duxie/p/11218434.html
Copyright © 2020-2023  润新知