• ベストアンサー

フォルダ内の全フォルダ名を取得したい。

おはようございます。ちょっと教えてほしいことがあります。 VB6にて、あるフォルダ内にある複数のフォルダあります。 フォルダ名を全権取得したいのですが、全くできません。 フォルダ内のフォルダ名はどのように取得できるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#60992
noname#60992
回答No.3

大変失礼いたしました。 No2の方のご指摘の通り、ループ内で再度ディレクトリ名を取得する必要があります。  あとはフォルダを識別するたにGetAttrを使う必要もあるかも。 (No2の方の意見を尊重して) 下記のソースをご覧ください。

参考URL:
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips068.htm
satoshi777
質問者

お礼

再度ありがとうございます。解決致しました。大変勉強になりました。 これを応用して、いろいろと勉強したいと思います。ありがとうございました。

その他の回答 (2)

回答No.2

よーくソースを見てください。 strDirNameはループ内で変更されているわけではないですよね。ループ前で取得されてから変更されていないのだから無限ループして当然です。 質問の回答を鵜呑みにするだけではなく自分でもよく考えましょう。スキルアップになりません。 loopの前に strDirName = Dir() と入れてみればループは終わります。 でもこれではFile名も取得してしまいます。 ではどうするか。 これ以上の説明は非常に長くなりそうなので、以下のサイトが参考になると思います。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html
satoshi777
質問者

お礼

ほんとにそうですね(>_<)申し訳ありません。ありがとうございます。

noname#60992
noname#60992
回答No.1

strDirName = Dir("C:\path",vbDirectory) do while strDirName <> "" debug.print strDirName loop のようなかんじで、どうですか?

satoshi777
質問者

補足

考えてくださって、ありがとうございます。 Dim strDirName As String strDirName = Dir("C:\user", vbDirectory) Do While strDirName <> "" Debug.Print strDirName Loop 具体的にはこのように書いたところ、延々とuserのみしか 取得できません。どこかおかしいのでしょうか? お時間あれば考えてくだされば助かります。よろしくお願いします。

専門家に質問してみよう