为什么我的S_ISDIR和S_ISREG会返回正确的目录/文件名?
当我使用我在其他3个目录和文本文件中创建的测试目录运行程序时,只执行Dir的printf()。
componentDidMount
答案 0 :(得分:0)
很明显你使用了错误的变量。 dirInfo
由此行if (lstat(fileName, &dirInfo) < 0)
初始化。这就是为什么总是打印Dir。
if(S_ISDIR(dirInfo.st_mode))
{
printf("Dir\n");
}
else if(S_ISREG(dirInfo.st_mode))
{
printf("File\n");
}
在Linux上,也许你可以使用dirp->d_type
获取类型。阅读this
如果想要使用S_ISREG / S_ISDIR,只需调用lstat
即可获得文件状态。