我正在尝试查明某些文件是否在某个文件夹中。但是,即使文件存在,我尝试查找它们的方式也不适用于某些文件夹。
bool FileExists(string strFilename) {
struct stat stFileInfo;
bool blnReturn;
int intStat;
intStat = stat(strFilename.c_str(),&stFileInfo);
if(intStat == 0) {
// We were able to get the file attributes
// so the file obviously exists.
blnReturn = true;
printf("Found file %s\n", strFilename.c_str());
} else {
blnReturn = false;
printf("Didn't find file %s\n", strFilename.c_str());
}
return(blnReturn);
}
当我在/ mnt / ram中安装一个目录时...它没有(有时会)在那里找到文件,但是当我使用磁盘上的另一个目录时,它总是找到文件。
有没有其他方法可以确定目录中是否存在文件?
由于
答案 0 :(得分:1)
stat
调用或任何其他目录/文件列表的结果取决于调用进程的权限。可能会为当前用户隐藏/mnt/ram
。
正如评论中所提到的,opendir
和readdir
是获取(递归)目录列表的惯用方法。显然,stat
是成语:-)
的一部分。