ページ 11

ファイルの存在数を知りたい

Posted: 2011年3月29日(火) 22:31
by 初々
勉強環境:MS Visual studio

C言語のテキストを一生懸命調べましたが、下記の点なお分かりません。
1.指定したディレクトリーの中に指定したファイル名が存在するかどうか知りたい場合、
実行速度一番早い関数は何ですか

2.頭3文字がabcであるファイルの存在数を知りたい場合、どうすればいいでしょうか。

(いずれも基本(標準)のC言語関数を利用したいですが)

先輩の方々宜しくお願いします

Re: ファイルの存在数を知りたい

Posted: 2011年3月29日(火) 22:53
by dic
>>勉強環境:MS Visual studio
とあるので、Windowsだと思いますが
実行速度などを厳密に求めると OS やファイルシステムなども書かれたほうがいいでしょうね
あと、使用可能なライブラリ、C言語のみか C++言語でもいいのか
コンパイラのバージョン指定
コンパイルのオプション指定
私が思いつくのでは上の指定をしたほうがいいと思います

Re: ファイルの存在数を知りたい

Posted: 2011年3月30日(水) 00:02
by YuO
1. に関して
Cの標準ライブラリの範囲内であれば,fopenしてみるしかありません。
ただし,「存在」の有無ではなく,「ファイルアクセス」の可否になります。

実際の存在の有無を調べるとなると,Cの標準ライブラリに調べるための方法はありません。
Visual StudioとのことなのでWindows環境に限るならば,Win32 APIのFindFirstFileWを使うと,
そのディレクトリの列挙権限を持っていれば存在の有無を確認でき,速度も速いと思います。

2. に関して
Cの標準ライブラリに調べるための方法はありません。

同じくWindows環境に限るとして,FindFirstFileW APIやFindNextFileW APIによって列挙して数えることになると思います。