代码:
#include <head.h>
int main(int argc, const char *argv[])
{
// 打开目标目录
DIR* dp = opendir("./02_基本函数2/");
if(NULL == dp)
{
perror("opendir");
return -1;
}
printf("打开目录成功\n");
// 打开目标文件
FILE* fp = fopen("./01_file.txt","w");
if(NULL == fp)
{
perror("fopen");
return -1;
}
// 读取目录
struct dirent* rp = NULL;
while(1)
{
rp = readdir(dp);
if(NULL == rp)
{
if(0 == errno)
{
printf("目录读取完毕\n");
break;
}
// 去除 隐藏文件
if(rp->d_name[0] != '.')
{
printf("%s\n",rp->d_name); //目录中存储的文件的名字,包括隐藏文件
}
}
// 获取文件属性
struct stat stGet;
if(stat("./01_基本函数1/",&stGet) < 0)
{
perror("stat");
return -1;
}
mode_t qx = stGet.st_mode & 0777;
// 获取时间
struct tm* tm;
tm = localtime(&stGet.st_atime);
fprintf(fp,"%s\n",rp->d_name);
fprintf(fp,"%o\n",qx & 0777);
fprintf(fp,"%04d-%02d-%02d %02d:%02d:%02d\n",\
tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,\
tm->tm_hour,tm->tm_min,tm->tm_sec);
}
// 关闭目录以及文件
if(closedir(dp) < 0)
{
perror("closedir");
return -1;
}
fclose(fp);
printf("文件拷贝完成\n");
return 0;
}
运行结果