2

特定のファイルが特定のフォルダーにあるかどうかを調べようとしています。ただし、ファイルが存在する場合でも、それらを見つけようとする方法が特定のフォルダーでは機能しません。

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 にディレクトリをマウントすると、そこにファイルが見つかりません (場合によっては見つかります) が、ディスク上の別のディレクトリを使用すると、常にファイルが見つかります。

ファイルがディレクトリに存在するかどうかを確認する他の方法はありますか?

ありがとう

4

1 に答える 1

1

呼び出しの結果statまたはその他のディレクトリ/ファイル リストは、呼び出しプロセスのアクセス許可に依存します。/mnt/ram現在のユーザーには隠されている可能性があります。

コメントで述べたようにopendirreaddir(再帰的な) ディレクトリ リストを取得する慣用的な方法です。明らかにstat、イディオムの一部です:-)

于 2012-12-16T11:17:47.720 に答える