如果文件数大于10,则计算文件夹中的txt文件数和最旧的文件数?

时间:2014-06-26 09:55:40

标签: c file-io directory

我正在使用以下程序获取文件夹中的文件数 如果文件数大于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;
}

1 个答案:

答案 0 :(得分:0)

我可以告诉你如何做到这一点。写完代码后回答你自己的问题。

  1. 使用Scandir()函数计算目录中文件的数量。

    see this

  2. system(cd /path/to/your/dir/ && ls -t > res.txt)它将使用上次修改时间对您的所有文件进行排序。您也可以按创建日期排序

    see this.

  3. 然后从文件中逐个读取文件的名称,跳过11个文件,一个将是你的res.txt,并将其存储在string name="filename"

  4. 声明类似string cmd="rm -f "

  5. 的字符串
  6. 使用将文件名附加到strcat(cmd,name);

  7. system(cmd);

  8. 从阅读文件到第4步它应该是一个while循环,条件应该是while( !EOF)