如何在C中显示具有Dirent和Stat结构的所有文件

用户名

好的,所以我试图显示给定路径名内的所有文件。对于我输入的第一个路径,所有文件均正确显示。但是,当我使用子目录路径作为函数的参数时,它仅显示单个可执行文件(子目录中还有其他文件作为测试)。我绝对不知道为什么会这样。我将在下面发布相关的代码片段,对此的任何帮助将不胜感激。

struct dirent *directory;
DIR *pdirectory;
struct stat fileinfo;




pdirectory=opendir(path);
    if (pdirectory==NULL)
    {
            printf("Error: Unable to open directory\n");
            exit(0);
    }
    printf("%s\n",path);
    while ((directory=readdir(pdirectory)) != NULL)
    {

        if (!stat(directory->d_name,&fileinfo))
        {
            if (S_ISREG(fileinfo.st_mode))
            { 
              printf("File Name:              %s\n",directory->d_name); 
              printf("File Size:              %d bytes\n",fileinfo.st_size);
              printf("Last Access:            %s\n",ctime(&fileinfo.st_atime));
            }
            }


    }
        closedir(pdirectory);
   }
哈里姆·卡鲁姆(Halim Qarroum)

您的问题是stat(2)系统调用失败,因为在使用程序打开当前目录以外的目录的情况下,您没有为他提供打开目录中文件完整路径。

这解释了为什么您的代码仅在打开当前目录时有效。

一种解决方案是将您要打开的目录的路径附加到结构d_name成员中包含的文件的名称中,dirent例如:

/ path / to / my / directory / name_of_the_file

或者

路径/到/我/目录/文件名

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中创建具有特定结构的XML文件

来自分类Dev

如何在C中遍历目录并打印所有文件的名称和权限

来自分类Dev

错误:stat:在C编程中没有这样的文件或目录,opendir()和stat()

来自分类Dev

如何在MySQL表中显示具有特定列值的所有行?

来自分类Dev

如何在phpstorm中查找具有功能的所有文件?

来自分类Dev

如何在C ++中重置结构中的所有变量?

来自分类Dev

如何在Treeview中显示文件夹下的所有文件

来自分类Dev

如何在公共布局文件中从db获取和显示数据以及如何在laravel 5.2中的所有视图上显示

来自分类Dev

如何在目录中查找所有具有相同扩展名的文件

来自分类Dev

如何在C#中收集具有泛型类型的静态类的所有“实例”?

来自分类Dev

如何在Windows上使用c ++在不带<dirent.h>的情况下获取具有特定扩展名的所有文件的列表

来自分类Dev

如何在arangodb中显示完全嵌套层次结构的给定节点的所有所有子/父节点

来自分类Dev

如何在MFC中显示文件的所有行

来自分类Dev

如何在ckfinder中显示所有文件夹,子文件夹和文件

来自分类Dev

如何在目录中查找所有具有相同扩展名的文件

来自分类Dev

如何在OS X的“打开文件”对话框中显示所有文件?

来自分类Dev

如何将文件夹的内容和树形结构复制到具有相同结构的远程目录中

来自分类Dev

想知道C ++中具有结构和功能的范围

来自分类Dev

如何在单行中获取具有列名的表结构?

来自分类Dev

函数和结构在C ++中具有相同的名称

来自分类Dev

错误:stat:C编程中没有这样的文件或目录,opendir()和stat()

来自分类Dev

如何在MySQL表中显示具有特定列值的所有行?

来自分类Dev

如何在Windows 8中删除具有特定扩展名的所有文件?

来自分类Dev

如何在UNIX Shell脚本中添加具有相同名称的所有文件的大小

来自分类Dev

如何在目录中并行查找所有具有相同扩展名的文件

来自分类Dev

如何在Mac中获取具有完整路径的所有文件的列表

来自分类Dev

显示具有读写权限的所有文件,并在文件中显示结果

来自分类Dev

如何在具有相同结构的三个 XML 文件中写入数据?

来自分类Dev

如何在 Baqend 中显示所有图像(文件)?

Related 相关文章

  1. 1

    如何在Java中创建具有特定结构的XML文件

  2. 2

    如何在C中遍历目录并打印所有文件的名称和权限

  3. 3

    错误:stat:在C编程中没有这样的文件或目录,opendir()和stat()

  4. 4

    如何在MySQL表中显示具有特定列值的所有行?

  5. 5

    如何在phpstorm中查找具有功能的所有文件?

  6. 6

    如何在C ++中重置结构中的所有变量?

  7. 7

    如何在Treeview中显示文件夹下的所有文件

  8. 8

    如何在公共布局文件中从db获取和显示数据以及如何在laravel 5.2中的所有视图上显示

  9. 9

    如何在目录中查找所有具有相同扩展名的文件

  10. 10

    如何在C#中收集具有泛型类型的静态类的所有“实例”?

  11. 11

    如何在Windows上使用c ++在不带<dirent.h>的情况下获取具有特定扩展名的所有文件的列表

  12. 12

    如何在arangodb中显示完全嵌套层次结构的给定节点的所有所有子/父节点

  13. 13

    如何在MFC中显示文件的所有行

  14. 14

    如何在ckfinder中显示所有文件夹,子文件夹和文件

  15. 15

    如何在目录中查找所有具有相同扩展名的文件

  16. 16

    如何在OS X的“打开文件”对话框中显示所有文件?

  17. 17

    如何将文件夹的内容和树形结构复制到具有相同结构的远程目录中

  18. 18

    想知道C ++中具有结构和功能的范围

  19. 19

    如何在单行中获取具有列名的表结构?

  20. 20

    函数和结构在C ++中具有相同的名称

  21. 21

    错误:stat:C编程中没有这样的文件或目录,opendir()和stat()

  22. 22

    如何在MySQL表中显示具有特定列值的所有行?

  23. 23

    如何在Windows 8中删除具有特定扩展名的所有文件?

  24. 24

    如何在UNIX Shell脚本中添加具有相同名称的所有文件的大小

  25. 25

    如何在目录中并行查找所有具有相同扩展名的文件

  26. 26

    如何在Mac中获取具有完整路径的所有文件的列表

  27. 27

    显示具有读写权限的所有文件,并在文件中显示结果

  28. 28

    如何在具有相同结构的三个 XML 文件中写入数据?

  29. 29

    如何在 Baqend 中显示所有图像(文件)?

热门标签

归档