HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


VB.NET 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > VB.NET 2003 Tips > フォルダ操作 Tips メニュー

02.指定フォルダ内のすべてのサブフォルダを取得する

UPDATE:2004/05/24 

<< 前のTips  次のTips >>

 


 残念ながら指定フォルダ内のすべてのサブフォルダを取得するメソッドは.NETでは提供されていません。そこで、System.IO名前空間のDirectoryクラスのGetDirectoriesメソッドを再起的に使用して実現しようと思います。

書式:
Private Sub GetSubDirs(
ByVal SearchDir As String, _
ByRef FindDirs As ArrayList _
)

引数:
SearchDir : 検索するフォルダパス文字列
FindDirs : 見つかったサブフォルダ一覧

戻り値:
なし

最初は第2引数はString型を使用しようかな、と思ったんですが再起的に検索してフォルダの一覧を追加していく必要があるために、ArrayList 型を使用することとしました。ArraListはAddメソッドを持っており、取得したフォルダ名を追加していけるからです。

 
サンプル
 Imports System.IO
:
:省略
:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    '変数の宣言
    Dim strSubDirs As New ArrayList

    '[C:\Work]のサブフォルダすべてを取得する
    GetSubDirectories("C:\Work", strSubDirs)

    '取得したサブフォルダ名を表示する
    For Each strSubDir As String In strSubDirs
        Console.WriteLine(strSubDir)
    Next

End Sub

'==========================================================================
'=
'= GetSubDirectories
'=
'= 説明:
'= 指定したフォルダ以下にあるサブフォルダを取得する
'=
'= 引数:
'= SearchDir :検索するフォルダ名
'= FindDirs :見つかったサブフォルダ名
'=
'= 戻り値:
'= なし
'=
'= HIRO's.NET All rights Reserved
'==========================================================================
Private Sub GetSubDirectories(ByVal SearchDir As String, ByRef FindDirs As ArrayList)

    '変数を宣言
    Dim strDir As String

    'サブフォルダを取得する
    For Each strDir In Directory.GetDirectories(SearchDir)
        'ArrayListに取得したフォルダを追加
        FindDirs.Add(strDir)

        '再帰呼び出しでサブフォルダを取得する
        GetSubDirectories(strDir, FindDirs)
    Next 

End Sub