- ベストアンサー
フルパスの取得
あるフォルダの中にあるすべてのファイル(サブフォルダ内のファイルを含めて)のフルパスを取得するにはどうしたらよいのでしょうか?これはFSOで実現できるのでしょうか?それともFSOなど使わなくてもできるのでしょうか? よろしくお願いします。 (使っているのはVB6.0です)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ファイルの再帰検索については、以前このサイトにお遊びで作ったコードを投稿したことがあります。 え~っと、コレ(↓)ですね。 バグ取りもしてない雑なコードですが、参考にはなると思います。
その他の回答 (3)
- KojiS
- ベストアンサー率46% (145/312)
フォルダの階層をたどりたいということですね? 1.指定されたフォルダのファイルを調べる。 2.そのフォルダのファイルを全て調べ終わったら終了する。 3.サブフォルダが見つかったらそのサブフォルダに対してまた調べる。 という処理を繰り返すことになります。 方法として、 ・再帰 ・アルゴリズムの工夫(再帰無し) の2種類あります。 典型的な再帰処理のアルゴリズムですね。 これがヒントです。 がんばってください。
お礼
アドバイスありがとうございます。 再起処理について考えてみます。 このヒントでわからなければ、また質問すると思います。
補足
もし、これだ! という回答があれば、よろしくお願いします。
補足読みました。 ユーザが指定したディレクトリ内にあるファイルを 全て取得するのでしたら、それこそフルパスはユーザが 指定したものでいいのではないでしょうか? あとは、如何にファイルを取得するかですよね。 #その後にフルパスをつけたファイル名を表示する #のであれば、指定したディレクトリ名を前につければ #いいと思いますよ。 ディレクトリの中を検索したいのであれば、Dir関数を 使用すればいいと思いますよ。使用例はMSDNに書いて あるので、それを参考にしてください。 ではでは☆
お礼
また早速の回答ありがとうございます。
補足
たしかにDir関数を使用すれば、フォルダ内のファイルは容易に取得できるとはおもうのですが、サブフォルダ内にのさらにサブフォルダ内にあるファイル名をすべて取得しようとした場合、どうしたらよいのでしょうか? できましたら、もう少しヒントを頂けるとありがたいのですが。よろしくお願いします。
ディレクトリが分かっているのですから、別に取得 する必要がないのでは? あるフォルダ内という風に限定しているのですから そのフォルダの位置は分かっているんですよね。 #サブディレクトリなら、その分かっているフォルダに #サブディレクトリ名をつけるだけだし。 ファイルの場所が分かっていれば、ディレクトリも 分かっているはずだし。 #少なくともVCでは問題でないよな。 私は何か勘違いしているのかな? ではでは☆
お礼
早速の回答ありがとうございます。
補足
一つの特定ファイルを指定するだけならば、Kanataさんのいうとおりかもしれません。しかし、ユーザが指定したフォルダ内にある全ファイル名を取得しようとした場合、どのようにしたらよいかということなのですが…。 VCで問題ないかもしれませんが、VBで知りたいのでよろしくお願いします。
お礼
早速の回答ありがとうございます。 まだ、内容の解析はしていませんが、参考になりそうです。