比 stat() 在 DIR 中查找文件的更好方法

a better way than stat() to look for files in dir?

本文关键字:文件 查找 更好 方法 DIR stat      更新时间:2023-10-16

我试图找出某些文件是否在某个文件夹中。但是,即使文件存在,我尝试查找它们的方式在某些文件夹中也不起作用。

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 %sn", strFilename.c_str());
  } else {
    blnReturn = false;
    printf("Didn't find file %sn", strFilename.c_str());
  }
  return(blnReturn);
}

当我在/mnt/ram 中挂载目录时,它不会(有时确实)在那里找到文件,但是当我使用磁盘上的另一个目录时,它总是找到文件。

有没有其他方法可以找出目录中是否存在文件?

谢谢

stat调用或任何其他目录/文件列表的结果取决于调用进程的权限。 /mnt/ram很可能对当前用户隐藏。

如注释中所述,opendirreaddir是获取(递归)目录列表的惯用方法。显然,stat是成语:-)的一部分。