人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: crashtruck
●カテゴリ:コンピュータ
✍キーワード:Dir ファイル フォルダ 勉強
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KirakiraHikaru
●100ポイント

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

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とすると、そのディレクトリの絶対パスを取得できます。


2 ● KirakiraHikaru
●100ポイント

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


Imports System.IO

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

すべてのDirectoryInfoとSearchOptionの前に、

System.IO.

を付け加えてください。

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ