APIのFindFirst/FindNextでディスク内の全ファイルを検索してファイル名をリストボックスに表示する作業の途中で、検索処理が現在何パーセント終わったところかをGAUGEに表示したいのですが実現の方法が良く分かりません。ディスク内の全ファイル数か全フォルダ数がわかるAPIがあれば出来そうです。また、他の方法や良いアドバイスなどがありましたらよろしくお願いします。
フォルダのプロパティでも、ゲージでなく現在のファイル数(カウント中)を表示しますので、APIはないと思います。
検索中のファイル数を表示すれば、気分的にゲージ代わりになるかと思います。
じゃあ、ないけどフォルダの検索中のゲージを作りたいのなら…。
これは見つけたファイルの中身を検査したりする場合のみですけど、
まず真っ先に全部のファイルを、"とりあえず個数だけ"調べます。
それから、それをMaxにして、全部のファイルに検査なり書き換えなりをします。
ファイル検索ソフトのDevasや、窓の手の"ファイル掃除機"は、こうやってるんだと思います。
あとひとつ。フォルダの中の容量を調べるものならあります。
(WindowsScriptingHostに…。けど、ここにあるなら当然APIもあるはず?)
これでとりあえず、フォルダの容量をMaxにして、あとは見つけたファイルのサイズぶん足していくというのは?
この関数はたしかサブフォルダを含めた容量を返すので、あいまいになるかもしれませんけど、
とりあえずゲージとしては、役に立たないことはないと思います^^;
DLLにある隠しAPIかもしれないので、参考になるページを書いておきます。
もし隠しAPIで、もっと調べる必要があったら、
検索サイトで"隠しAPI"とか、"アンドキュメント API"とかはどうでしょう?
http://www.runan.net/
ページの下のあたりのメニュー…→プログラミングTips→隠しAPI
にしの様、たかみちえ様、返信ありがとうございました。直接全ファイル数を得るAPIはどうやらなさそうですね。全部のファイルを、とりあえず個数だけ調べる事で解決できそうです。がんばってコードを書いてみたいと思います。
ツイート | ![]() |