遍历某个目录,将目录文件名写入到一个文件中
void SearchFolder(char* folderPath, FILE *fp)
{
_finddata_t FileInfo;
char strfind[255];
char strTemp[255],strTemp2[10];
memset(strfind, 0, sizeof(strfind));
strcat(strfind, folderPath);
strcat(strfind, "\\*");
long Handle = _findfirst(strfind, &FileInfo);
if (Handle == -1L)
{
printf("not find any files under %s\n",strfind);
return;
}
do{
if (FileInfo.attrib & _A_SUBDIR)
{
if( (strcmp(FileInfo.name,".") != 0 ) &&(strcmp(FileInfo.name,"..") != 0) )
{
//printf("find a folder %s\n", FileInfo.name);
char newPath[255];
memset(newPath, 0, sizeof(newPath));
strcat(newPath, folderPath);
strcat(newPath, "\\");
strcat(newPath, FileInfo.name);
fwrite("-",1,1,fp);
//fwrite(FileInfo.name, strlen(FileInfo.name), 1, fp);
char *displayPath = substr(newPath, path);
fwrite(displayPath,strlen(displayPath), 1, fp);
SearchFolder(newPath, fp, flag);
}
}
else
{
char buf[30];
memset(strTemp, 0, sizeof(strTemp));
strcpy(strTemp, FileInfo.name);
strcat(strTemp, " ");
sprintf(strTemp2, "%d",FileInfo.size);
strcat(strTemp, strTemp2);
strcat(strTemp, " ");
seconds2ymdhms(buf, FileInfo.time_write);
strcat(strTemp,buf);
strcat(strTemp, "\n");
fwrite(strTemp,strlen(strTemp), 1, fp);
}
}while (_findnext(Handle, &FileInfo) == 0);
_findclose(Handle);
}
char *substr(char *src, char *part)
{
char *p;
if (part) {
p = src+ strlen(part)+1;
}
else
p=src;
return p;
}
/convert seconds since 1970 to y-m-d h:m:s
void seconds2ymdhms (char *buf, time_t time)
{
struct tm *local;
local=localtime(&time);
strftime(buf,30,"%Y-%m-%d %H:%M:%S",local);
}