万捷博客

万捷博客
一个知识汇聚的地方
首页 » c++ » c++批量快速删除大文件大文件夹[源码]

c++批量快速删除大文件大文件夹[源码]

使用方法:将需要删除的文件和文件夹一起选中,然后拖放到程序图标上,在弹出的窗口中按提示操作即可。

c++批量快速删除大文件大文件夹[源码]

 

源代码:

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <direct.h>
#include <shellapi.h>
using namespace std;

int Go(int argc, char* argv[])
{
    std::cout << "\n 开始删除...\n\n" << std::endl;

	for (int i = 0; i < argc; i++) {
        if(i>0){
        string ml ="";
        WIN32_FIND_DATAA FindFileData;
        FindFirstFileA(argv[i],&FindFileData);
        if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            //是文件夹
            ml = "rmdir /s/q \""  ;
            ml += argv[i];
            std::cout << "删除文件夹 - "<< argv[i] << std::endl;

        }
        else
        {
            //是文件
            ml = "del /f/s/q \""  ;
            ml += argv[i];

        }
        ml += "\"";

                //std::cout <<ml.c_str() << std::endl;
        system(ml.c_str());


            }
        }
        std::cout << "\n 删除完毕,按任意键退出程序...\n\n" << std::endl;
        while(1)
        {
            int jian = getch();
            if(jian > 0){return 0;}
        }
}

int main(int argc, char* argv[])
{

    if(argc==1){
        std::cout << "\n 使用说明:\n\n   直接将需要删除的所有文件/文件夹拖放到软件的图标上,不是打开软件再拖文件! \n\n 按任意键关闭程序 " << std::endl;
        while(1)
        {
            int jian = getch();
            if(jian > 0){return 0;}
        }
    }

    std::cout << "\n将要删除的文件:\n" << std::endl;
	for (int i = 0; i < argc; i++) {
        if(i>0){
            std::cout << "  " << i << " 、 " << argv[i] << std::endl;
        }
	}
    std::cout << "\n *注意:文件将直接删除,不会进入回收站,删除后不可恢复,请谨慎操作。\n *注意:文件将直接删除,不会进入回收站,删除后不可恢复,请谨慎操作。\n *注意:文件将直接删除,不会进入回收站,删除后不可恢复,请谨慎操作。\n\n按回车键开始删除,按其他键退出程序....\n" << std::endl;

    while(1)
    {
        int jian = getch();
        switch(jian)
        {
            case 13:  // \n 按了回车,执行工作
                 std::cout << "\n 为了防止您误删除文件,请再次按回车键以确认开始删除文件,按其他键退出... " << std::endl;
                    while(1)
                    {
                        int jian = getch();
                        switch(jian)
                        {
                            case 13:  // \n 按了回车,执行工作

                               Go(argc,argv);
                                break;
                            default :
                        //std::cout << "\n "<< jian <<" \n" << std::endl;
                            //任意键退出程序
                            return 0;
                        }
                    }

                break;
            default :
        //std::cout << "\n "<< jian <<" \n" << std::endl;
            //任意键退出程序
            return 0;
        }
    }


	return 0;
}

文章如无特别注明均为原创! 作者: admin, 转载或复制请以 超链接形式 并注明出处 万捷博客
原文地址《 c++批量快速删除大文件大文件夹[源码]》发布于2019-1-25

打赏作者

评论

游客

看不清楚?点图切换
切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册