gpt4 book ai didi

c - 显示目录中的文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:45 26 4
gpt4 key购买 nike

我有一个名为 dir 的目录。它按顺序包含以下文件

12.07.2013
13.07.2013
14.07.2013
15.07.2013
16.07.2013
17.07.2013

我编写了以下 C 程序来显示目录 dir 中的所有文件

代码:

#include <stdio.h>
#include <string.h>
#include <dirent.h>
int main (int argc, char *argv[])
{
DIR *directory;
struct dirent *file;
directory = opendir (argv[1]);
if (directory != NULL){
while (file = readdir (directory))
printf("FILE : %s \n",file->d_name);

(void) closedir (directory);
}
else
printf("Not able to open the directory\n");
return 0;
}

以上代码给出实际输出为

FILE : 14.07.2013 
FILE : 13.07.2013
FILE : 17.07.2013
FILE : .
FILE : 15.07.2013
FILE : ..
FILE : 12.07.2013
FILE : 16.07.2013

但我希望输出按如下所示的正确顺序

FILE : 12.07.2013 
FILE : 13.07.2013
FILE : 14.07.2013
FILE : 15.07.2013
FILE : 16.07.2013
FILE : 17.07.2013

当我直接看到目录中的文件时,它会按正确的顺序排列和显示文件。

那为什么上面的C代码没有按正确的顺序读取文件,我的意思是随机读取文件。

工作环境:Linux(ubuntu12.04),gcc编译器

谢谢

最佳答案

它不是随机读取文件,它只是按照存储在目录文件本身中的顺序读取目录列表。当您“直接看到目录中的文件”时,我认为这意味着您正在使用 ls,但是 ls 在输出之前对结果进行排序 .如果你想要匹配的输出,你需要做同样的事情。

关于c - 显示目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17707050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com