【发布时间】:2018-08-18 07:09:14
【问题描述】:
我在创建一个读取当前目录、打印文件路径和内容的 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);
【问题讨论】:
-
展示你的作品
-
抱歉刚刚更新
-
"a directory, a file, or executable" - 目录和文件可以设置执行访问位,这是什么意思?
-
当用户启动shell时,它应该打印当前目录下所有文件的文件名,除了隐藏文件。对于每个文件名,还要打印它是目录、可执行程序还是普通文件。