我有一个程序可以通过检查以下内容来打印出特定目录中列出的所有目录: d_type == DT_DIR
该程序可以工作,但也可以打印出父目录..
和当前目录.
我试图设置一个if语句来检查它d_name != ".." or "."
,但是它仍然打印出父目录和当前目录
这是我的代码以及添加的if语句
directory = opendir("/home/user/adirectory");
if(directory != NULL)
{
while(entry = readdir(directory)) {
if(entry->d_type == DT_DIR && entry->d_name != ".." && entry->d_name != ".")
printf("%s\n", entry->d_name);
}
}
不幸的是,这是输出,其中DIR2是一个目录里面a目录
..
dir2
.
我想改为只显示此目录的点而不是两个点的输出
dir2
可以使用strcmp函数在C中进行字符串比较。您不能使用=符号比较字符串。下面是用strcmp更新的代码。
directory = opendir("/home/user/adirectory");
if(directory != NULL)
{
while(entry = readdir(directory)) {
if(entry->d_type == DT_DIR && strcmp(entry->d_name,"..")!=0 && strcmp(entry->d_name, ".")!=0)
printf("%s\n", entry->d_name);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句