使用方法:将需要删除的文件和文件夹一起选中,然后拖放到程序图标上,在弹出的窗口中按提示操作即可。
源代码:
#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;
}