- ベストアンサー
ファイルがあるかないかチェックしたい。
ファイルがあるかないかをチェックして、あればtrue、なければfalseを返す関数を作りたいと思います。 どのように作ればよいでしょうか? 理想としては、シェルの"-e"に相当するようなものができればと思います。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
OSは何でしょうか。 unix(又はDOSプロンプトで実行可能なモジュール)であれば、stat関数を使用して、ファイルの存在をチェックすることができます。
その他の回答 (4)
- buihyaku
- ベストアンサー率29% (97/326)
参考までに もしWin32でMFCに限定すると、 静的関数の CFile::GetStatus() を使用するのがスマートです。ファイルを開かずディレクトリエントリからファイルのステータス情報を取得します。
- jacta
- ベストアンサー率26% (845/3158)
読み込みモードでfopenして、失敗するかどうかを調べるのが一番です。(下記URL参照) CでもC++でも(Objective-Cでも)使える方法です。 ただし、書き込み専用属性を指定できる環境や、デバイスの場合は、環境依存の方法で実装する必要があります。
Windowsで良ければこんな方法も BOOL FileExist( LPCTSTR lpszFileName) { return GetFileAttributes(lpszFileName) != 0xFFFFFFFF; }
- rigidbody
- ベストアンサー率60% (20/33)
こんな感じでしょうか。 bool IsExistFile( // true:在り false:無し const char* i_pszPath // 検査対象ファイルパス名 ){ std::ifstream fs( i_pszPath ); return fs.is_open(); } winでも_stat()が使えます。が、私なら上記のようにします。標準語(ISO/ANSI C++)のみで書けるからです。あと、実行速度を気にする必要も無いだろうからです。 stat()や_stat()は方言故、あまり使いたくないのです...