VisualBasic2005Proで勉強中の者です。str1 = Dir("c:Folder1", FileAttribute.Directory) として、フォルダ名の一覧を取得しようとしていますが、一覧の中にファイル名も含まれてしまいます。フォルダ名だけを取得するにはどうすればよいでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/09/06 00:04:09
  • 終了:2006/09/06 17:09:46

回答(2件)

id:KirakiraHikaru No.1

KirakiraHikaru回答回数354ベストアンサー獲得回数682006/09/06 00:42:36

ポイント100pt

下記のコードでフォルダ内のフォルダ名一覧が取得できます。

Dir関数は古く使いづらいので、下記のようにDirectoryInfoクラスを使うと、

簡単に取得できます。

        Dim dirListStr As String = ""
        Dim path As String = "c:\Folder1\"
        Dim searchPattern As String = "*"

        Dim di As DirectoryInfo = New DirectoryInfo(path)
        Dim directories() As DirectoryInfo = _
            di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)

        Dim dir As DirectoryInfo
        For Each dir In directories
            dirListStr &= dir.Name & vbCrLf
        Next dir

SearchOption.TopDirectoryOnlyをSearchOption.AllDirectories

とすると、そのフォルダ以下にあるサブフォルダを含むすべてのフォルダを取得できます。

また、dirListStr &= dir.Name & vbCrLf

としているところの、

dirはName以外にも様々なプロパティを含んでいます。

例えばdir.FullNameとすると、そのディレクトリの絶対パスを取得できます。

id:KirakiraHikaru No.2

KirakiraHikaru回答回数354ベストアンサー獲得回数682006/09/06 00:55:27

ポイント100pt

ごめんなさい、記入漏れです。


Imports System.IO

としてSystem.IOをインポートするか、

すべてのDirectoryInfoとSearchOptionの前に、

System.IO.

を付け加えてください。

id:crashtruck

ありがとうございます。できました。今後はDirはできるだけ使わないようにします。

2006/09/06 16:48:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません