私はディレクトリから日付ごとにすべてのファイル名の名前を表示したいと思います。私はすべての日付をソートしましたが、すべての名前を日付に関連付ける必要があります。それを行うための機能や方法はありますか?ディレクトリ内のファイル名のリストをCで日付順に出力するには?
#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;
}
}
}
これは少し基本的ですが動作します。
あなたのデータに 'struct'を使い、' man qsort'を実行します。そして、あなたはまだ何かを "接続"していません。 –
時間を配列に格納することは良い考えですが、そうです。ファイル名との接続が失われます。したがって、 'struct'を使うことを提案します。 ( 'unconnected') 'name'と' Time'配列にインデックスを含む3番目の配列が必要です。 '' struct''を使用してください。) – usr2564301
これは奇妙な:あなたが表示するコードは、ファイル名-1の可能な限りの長さの日付を保存することができます。 – alk