我正在使用以下程序获取文件夹中的文件数 如果文件数大于10,我想从文件夹中删除最旧的文件。
#include<dirent.h>
int file_count = 0
DIR * dirp;
struct dirent * entry;
dirp = opendir("path");
while ((entry = readdir(dirp)) != NULL) {
if (entry->d_name!=NULL) {
file_count++;
}
}
closedir(dirp);
printf("%d", file_count-2);
return 0;
}
答案 0 :(得分:0)
我可以告诉你如何做到这一点。写完代码后回答你自己的问题。
使用Scandir()函数计算目录中文件的数量。
写system(cd /path/to/your/dir/ && ls -t > res.txt)
它将使用上次修改时间对您的所有文件进行排序。您也可以按创建日期排序
然后从文件中逐个读取文件的名称,跳过11个文件,一个将是你的res.txt,并将其存储在string name="filename"
声明类似string cmd="rm -f "
使用将文件名附加到strcat(cmd,name);
。
写system(cmd);
从阅读文件到第4步它应该是一个while循环,条件应该是while( !EOF)