我想按日期打印目录中每个文件名的名称。我已经对每个日期进行了排序,但我希望将每个名称与其日期相关联。是否有功能或方法来做到这一点?
#define BUFFERSIZE 100
char SORTNAME() {
DIR *dir = opendir(".");
if (dir) {
char buffer[BUFFERSIZE];
struct stat info;
struct dirent *s_dir;
int buf = BUFFERSIZE;
time_t *Time = malloc(sizeof(time_t) * buf);
int i = 0;
while ((s_dir = readdir(dir)) != NULL) {
if (s_dir->d_name[0] != '.') {
sprintf(buffer, "%s", s_dir->d_name);
stat(buffer, &info);
Time[i] = info.st_mtime;
i++;
}
}
int size = i;
int h, j, k, min;
time_t t;
for (j = 0; j < size - 1; j++) {
min = j;
for (k = j + 1; k < size; k++) {
if (Time[k] > Time[min]) {
min = k;
}
}
t = Time[min];
Time[min] = Time[j];
Time[j] = t;
}
}
}
它有点基础,但它确实有效。
答案 0 :(得分:1)
您应该按照以下步骤操作:
qsort
对数组进行排序,并使用适当的排序函数。尝试使用不同的排序函数按文件时间,名称,扩展名进行排序...... strftime()