【发布时间】:2016-02-17 11:25:50
【问题描述】:
你能帮我开发一个用 C 语言扫描当前目录的程序吗? 显示位于那里的所有文件的名称 带有扩展名。然后程序转到 父目录,然后成为当前目录,并且这些 重复以上步骤,直到当前目录不在 成为根目录。 谢谢。 祝你有美好的一天。
附:对不起。这是我正在努力工作的代码。它列出了当前目录中的所有文件,但不转到父目录。 P.S.S 我的代码列出了当前目录中的文件以及对父目录的更改。等等。它按我的预期工作,但我无法检查当前目录是否为根目录,并获得永恒循环。谢谢。
#include <unistd.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
int main(void)
{
DIR *d;
char cwd[1024];
struct dirent *dir;
do {
d = opendir(".");
if (getcwd(cwd, sizeof(cwd)) != NULL)
fprintf(stdout, "Current working dir: %s\n", cwd);
else
perror("getcwd() error");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
if (dir->d_type == DT_REG)
{
printf("%s\n", dir->d_name);
}
}
chdir("..");
closedir(d);
}
// Do not know how to check if current directory is root
// and getting eternal loop
}while (cwd != "/");
return 0;
}
输出:
Current working dir: /
Current working dir: /
......................
Current working dir: /
【问题讨论】:
-
听起来像是家庭作业,你有尝试过吗?发布您当前的代码并说明您遇到的问题。
-
你好,@liam_g。感谢您的回答。我已经添加了我想要工作的代码。谢谢。
-
闻起来像作业。
-
是的,@Ashish Ahuja。这是家庭作业,我对此很感兴趣。