我无法在线找到问题的解决方案.
我想在Unix中调用一个函数,传入一个目录的路径,并知道它是否存在.opendir()如果目录不存在则返回错误,但我的目标不是实际打开,检查错误,如果没有错误则关闭它,而只是检查文件是否是目录.
有没有方便的方法呢?
我想检查目录中的所有文件时,如果目录中的文件/项目之一是文件夹(另一个目录)
我已经开始的代码(使用 dirent.h):
DIR *dir;
struct dirent *ent;
if ((dir = opendir ("c:\\src\\")) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL) {
if (ent.is_folder()) // here is what I want to implement
printf ("Folder: %s\n", ent->d_name);
else
printf("File %s\n", ent->d_name);
}
closedir (dir);
} else {
/* could not open directory */
perror ("");
return EXIT_FAILURE;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 递归地迭代目录readdir。
struct dirent记录在此处,并注释d_type可以具有不同的值,包括DT_LNK和DT_DIR和DT_REG。但是,当d_typeis时DT_LNK,没有提示链接是指向文件还是目录。
有没有办法检查符号链接的目标是文件还是目录?