64,687
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<windows.h>
void ListFile(FILE* fp)
{
char szCurPath[MAX_PATH]={0};
GetCurrentDirectory(MAX_PATH, szCurPath);
HANDLE hSearch;
WIN32_FIND_DATA data;
hSearch=FindFirstFile("*",&data);
do{
if(data.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY
&&strcmp(data.cFileName,".")
&&strcmp(data.cFileName,"..")){
SetCurrentDirectory(data.cFileName);
ListFile(fp);
SetCurrentDirectory("..");
}
else if(strcmp(data.cFileName,".")
&&strcmp(data.cFileName,"..")){
//cout<<data.cFileName<<endl;
//获得文件长度,并读取前4个字节
FILE* fp_read = fopen(data.cFileName, "rb");
fseek(fp_read, 0, FILE_END);
DWORD fsize = ftell(fp_read);
rewind(fp_read);
BYTE buf[8] = {0};
int read_size = fread(buf, 1, 4, fp_read);
fclose(fp_read);
//采集到的信息写到文件中
fprintf(fp, "%s\\%s %u %x%x%x%x\r\n", szCurPath, data.cFileName, fsize, buf[0], buf[1], buf[2], buf[3]);
fflush(fp);
}
}while(FindNextFile(hSearch,&data));
FindClose(hSearch);
}
int main(int argc,char *argv[])
{
//设置遍历路径
SetCurrentDirectory("E:\\Back_C");
FILE* fp = fopen("log.txt", "wb");
ListFile(fp);
fclose(fp);
return 0;
}