- ベストアンサー
フォルダ内にさらにフォルダがあるか知りたい
Windows2000 VB6 で開発をしています。 フォルダ内にあるフォルダ名称だけを取得することって出来るのでしょうか? フォルダ内のファイル数が多く、一つずつ確認するのでは時間がかかりそうなので、 もっと簡単に早くできる方法がないか模索中です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでよいですか? Sub test() Set fold = CreateObject("Scripting.FileSystemObject") folder_name = "c:\" Set folder1 = fold.GetFolder(folder_name) Set sub_folders = folder1.subfolders For Each sub_folder In sub_folders MsgBox (sub_folder.Name) Next End Sub
その他の回答 (3)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
さらに、ふと思った。 #1の回答が理解ができないなら、、、 ディレクトリリストボックスコントロールを使用してみては? DirListBoxというのが、標準コントロールの中にあります。 それをフォーム中にはって Dir1.Path = "c:\" などとパスを指定したら、あとはリストボックス同様の扱いができます。 個人的には、コントロールを張ると重くなるので、是非とも#1の発言を理解することに熱望
- TAGOSAKU7
- ベストアンサー率65% (276/422)
#1への補足を見て、ふと思った。 #1の発言の「C:\」を文字列変数にしておくだけではないの?
- nikosaru
- ベストアンサー率30% (3/10)
Dirがお嫌いではなければ、、、 Private Sub Command1_Click() Dim fo As String fo = Dir("c:\", vbDirectory) Do While fo <> "" If fo <> "." And fo <> ".." Then If (GetAttr("c:\" & fo) And vbDirectory) = vbDirectory Then Debug.Print fo End If End If fo = Dir Loop End Sub
補足
この方法では、フォルダにぶつかるまではループさせてファイルを一つずつ確認しないといけないということですよね? やはり、一つずつ確認するしかないのでしょうか?
お礼
ごめんなさい! folder_nameと見ただけで、「フォルダ名固定で探すのか」と、勝手に判断してしまいました。 教えて頂いた方法で、出来ました。 どうもありがとうございました。
補足
フォルダ名は固定ではないので、指定できないんです・・・(>_<)