|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下是我编的程序,目前我是想在以下程序加入一个功能,实现文件的查重,和删除
(举个例子,2个或多个文件是一样的,改动了名字使他们名字不相同,但是实际同样的文件,加入这个功能后能删除这些文件)
(下面这个程序有遍历文件路径下所有文件的功能,没有查重,和删除希望大佬能帮忙解答)
#include <stdio.h>
#include <io.h>
#include <string.h>
#include <Windows.h>
#include <time.h>
void DoSearchFiles(char *path,FILE *fp)
{
time_t t;
struct tm *p;
char a[100]={0};
char temp[MAX_PATH]={0};
strcat(temp,path);
strcat(temp,"*.*");
_finddata_t fileinfo;
long handle=_findfirst(temp,&fileinfo);
if(handle==-1)
{
return;
}
while(!_findnext(handle,& fileinfo))
{
if(fileinfo.attrib== _A_SUBDIR){
if (strcmp(fileinfo.name,".")==0||strcmp(fileinfo.name,"..")==0)
{
continue;
}
t=fileinfo.time_create;
p=localtime(&t);
strftime(a, sizeof(a), "创建时间:%Y-%m-%d %H:%M:%S", p);
//printf("%d: %s\n", (int)t, s);
printf("%s%s %s\n",path,fileinfo.name,a);
fprintf(fp,"%s%s %s\n",path,fileinfo.name,a);
char temp[MAX_PATH]={0};
strcat(temp,path);
strcat(temp,fileinfo.name);
strcat(temp,"\\");
DoSearchFiles(temp,fp);
}
else
{
t=fileinfo.time_create;
p=localtime(&t);
strftime(a, sizeof(a), "创建时间:%Y-%m-%d %H:%M:%S", p);
printf("%s%s %s\n",path,fileinfo.name,a);
fprintf(fp,"%s%s %s\n",path,fileinfo.name,a);
}
}
_findclose(handle);
}
int main()
{
FILE *fp;
if((fp=fopen("D:\\123\\a\\110.txt","w"))==NULL)
{
printf("文件夹打开失败!\n");
exit(EXIT_FAILURE);
}
int i=0;
char c;
char path[100]={0};
printf("请输入路径:");
while((c=getchar())!='\n')
{
path[i]=c;
i++;
if(i==100)
{
printf("输入的文件路径超出范围!");
return -1;
}
}
DoSearchFiles(path,fp);
fclose(fp);
system("pause");
return 0;
} |
|