C++ c++;如何快速检查目录中是否有文件?

C++ c++;如何快速检查目录中是否有文件?,c++,file,directory,C++,File,Directory,我想做的是,当一个目录没有写权限,并且目录至少包含一个文件时,尝试打印出“权限被拒绝” 这就是我想做的,但即使没有文件,它也会打印出消息。。。任何建议?readdir()将始终返回至少两个条目,即和。条目。printf(argv[i])应为printf(“%s”,argv[i])。但是你应该把所有的3个都组合成一个调用“代码> Prtff,中间有 %s 。除了之外还有很多其他的原因!(sb.st_mode&S_IWUSR)可能导致任何类型的rm失败,并显示“权限被拒绝”。它可能是一个只读文件系统

我想做的是,当一个目录没有写权限,并且目录至少包含一个文件时,尝试打印出“权限被拒绝”


这就是我想做的,但即使没有文件,它也会打印出消息。。。任何建议?

readdir()
将始终返回至少两个条目,即
条目。
printf(argv[i])
应为
printf(“%s”,argv[i])
。但是你应该把所有的3个都组合成一个调用“代码> Prtff<代码>,中间有<代码> %s 。除了<代码>之外还有很多其他的原因!(sb.st_mode&S_IWUSR)可能导致任何类型的
rm
失败,并显示“权限被拒绝”。它可能是一个只读文件系统。一般来说,在尝试某个操作之前检查该操作是否会成功并没有什么好处,即使您准确地复制了对该操作的任何和所有检查(您不会)。如果需要删除文件,请删除该文件。移除要么有效,要么无效。不要先检查你是否可以。
DIR *dir;
dir = opendir (argv[i]);
if (!(sb.st_mode & S_IWUSR) && (readdir(dir) != NULL))
{
    printf("rm: cannot remove ");
    printf(argv[i]);
    printf(": Permission denied\n"); 
}