读取当前目录,根据文件属性打印结果

player_unknown

我在创建一个读取当前目录、打印文件路径和内容的 C 程序时遇到了一些麻烦。

对于在目录中找到的每个文件,应该根据它们是目录、文件还是可执行文件来打印内容。

我的主要组件在使用 opendir() / closedir() 命令后不确定如何对文件输出进行排序

例如。最终输出:

/home/documents/folder1
File:       help.txt
File:       me.txt
Executable: plz
File:       thankyou.c  

当前代码:

struct dirent *de;  // Pointer for directory entry

// opendir() returns a pointer of DIR type.
DIR *dir = opendir(".");//opens current direcotry

if (dir == NULL)  // opendir returns NULL if couldn't open directory
{
    printf("ERROR: Could not open current directory" );
    return 1;
}

// for readdir()
while ((de = readdir(dir)) != NULL){

      //if (Executable){}
      //else if (File){}
      //else if (Directory){}
        printf("%s\n", de->d_name);
基兰比拉达尔

您可以使用d_typefromstruct dirent检查文件的类型,使用accesswithX_OK检查文件是否可执行。

#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <unistd.h>

int main()
{
    DIR *dir;
    struct dirent *dp;
    char * file_name;
    dir = opendir(".");
    while ((dp=readdir(dir)) != NULL) {
        if ( !strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..") )
        {
            // do nothing (straight logic)
        } else {
            file_name = dp->d_name; // use it
            if (access(file_name, X_OK) != -1) {
             printf("executable:");
            }
            else if (dp->d_type == DT_DIR)
            {
               printf("directory:");
            }
            else if(dp->d_type == DT_REG)
            {
               printf("file:");
            }
            printf("     \"%s\"\n",file_name);
        }
    }
    closedir(dir);
    return 0;
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c ++ GetPrivateProfileString从当前目录读取ini文件

来自分类Dev

读取文件并根据标准打印需求输出

来自分类Dev

根据当前打开的文件的名称/目录打开文件

来自分类Dev

根据当前打开的文件的名称/目录打开文件

来自分类Dev

读取目录中的所有属性文件

来自分类Dev

Python:根据文件大小打印文件名及其目录

来自分类Dev

Python:根据文件大小打印文件名及其目录

来自分类Dev

在python中读取当前目录中所有文件的内容

来自分类Dev

python打开目录,读取并打印文件名

来自分类Dev

当我从文件中读取时打印出意外的结果

来自分类Dev

从文件中读取结果数据,进行加载,比较并打印显示

来自分类Dev

pathlib打印当前目录路径

来自分类Dev

根据当前目录更改 PATH

来自分类Dev

PHP -v 命令根据我当前的目录给出不同的结果

来自分类Dev

如何从项目目录中的javascript中读取属性文件?

来自分类Dev

属性文件读取Java并将结果放入字符串

来自分类Dev

打开目录中的每个文件/子文件夹,然后将结果打印到.txt文件

来自分类Dev

如何允许组成员读取目录中的当前文件和新文件?

来自分类Dev

根据RegistrySearch的结果设置目录

来自分类Dev

根据命令的结果更改目录

来自分类Dev

Python读取文件并打印

来自分类Dev

文件读取,单行打印

来自分类Dev

无法从目录读取文件

来自分类Dev

如何在python当前目录中打印图像文件的详细信息

来自分类Dev

如何在python当前目录中打印图像文件的详细信息

来自分类Dev

用于在当前目录中打印文件名的C实用程序(Unix)

来自分类Dev

Spark读取的文件夹目录,其文件名包含在结果数据框中

来自分类Dev

打印出当前工作目录

来自分类Dev

读取文件,并根据读取的数据实例化具有属性的对象

Related 相关文章

  1. 1

    c ++ GetPrivateProfileString从当前目录读取ini文件

  2. 2

    读取文件并根据标准打印需求输出

  3. 3

    根据当前打开的文件的名称/目录打开文件

  4. 4

    根据当前打开的文件的名称/目录打开文件

  5. 5

    读取目录中的所有属性文件

  6. 6

    Python:根据文件大小打印文件名及其目录

  7. 7

    Python:根据文件大小打印文件名及其目录

  8. 8

    在python中读取当前目录中所有文件的内容

  9. 9

    python打开目录,读取并打印文件名

  10. 10

    当我从文件中读取时打印出意外的结果

  11. 11

    从文件中读取结果数据,进行加载,比较并打印显示

  12. 12

    pathlib打印当前目录路径

  13. 13

    根据当前目录更改 PATH

  14. 14

    PHP -v 命令根据我当前的目录给出不同的结果

  15. 15

    如何从项目目录中的javascript中读取属性文件?

  16. 16

    属性文件读取Java并将结果放入字符串

  17. 17

    打开目录中的每个文件/子文件夹,然后将结果打印到.txt文件

  18. 18

    如何允许组成员读取目录中的当前文件和新文件?

  19. 19

    根据RegistrySearch的结果设置目录

  20. 20

    根据命令的结果更改目录

  21. 21

    Python读取文件并打印

  22. 22

    文件读取,单行打印

  23. 23

    无法从目录读取文件

  24. 24

    如何在python当前目录中打印图像文件的详细信息

  25. 25

    如何在python当前目录中打印图像文件的详细信息

  26. 26

    用于在当前目录中打印文件名的C实用程序(Unix)

  27. 27

    Spark读取的文件夹目录,其文件名包含在结果数据框中

  28. 28

    打印出当前工作目录

  29. 29

    读取文件,并根据读取的数据实例化具有属性的对象

热门标签

归档