C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 階層数指定フォルダパスリスト出力


(過去ログ 117 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68744 / inTopicNo.1)  階層数指定フォルダパスリスト出力
  
□投稿者/ sogood (1回)-(2013/11/11(Mon) 12:16:24)

分類:[VB.NET/VB2005 以降] 

フォルダパスを出力する物なのですが、階層数を指定したいのですが可能でしょうか。
現状ですと、最下位のパスまで表示されますが、3階層までとか指定したいのですが。
宜しくお願い致します。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim targetDir As String = "C:\netdata"
Dim strDirs As New List(Of String)
Dim t_data As String = ""
GetSubDirectories(targetDir, strDirs)
Dim St As String
For Each St In strDirs
t_data = t_data & St & Environment.NewLine
Next
MsgBox(t_data)
End Sub

Private Sub GetSubDirectories(ByVal DirPath As String, ByRef Dirs As List(Of String))
For Each strDir As String In System.IO.Directory.GetDirectories(DirPath)
Dirs.Add(strDir)
GetSubDirectories(strDir, Dirs)
Next strDir
End Sub
引用返信 編集キー/
■68745 / inTopicNo.2)  Re[1]: 階層数指定フォルダパスリスト出力
□投稿者/ shu (420回)-(2013/11/11(Mon) 12:24:13)
2013/11/11(Mon) 12:24:25 編集(投稿者)
No68744 (sogood さん) に返信
> フォルダパスを出力する物なのですが、階層数を指定したいのですが可能でしょうか。
> 現状ですと、最下位のパスまで表示されますが、3階層までとか指定したいのですが。
> 宜しくお願い致します。
> 
>     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
>         Dim targetDir As String = "C:\netdata"
>         Dim strDirs As New List(Of String)
>         Dim t_data As String = ""
>         GetSubDirectories(targetDir, strDirs)
ここを
 GetSubDirectories(targetDir, strDirs, 0)
として


>         Dim St As String
>         For Each St In strDirs
>             t_data = t_data & St & Environment.NewLine
>         Next
>         MsgBox(t_data)
>     End Sub
> 
>     Private Sub GetSubDirectories(ByVal DirPath As String, ByRef Dirs As List(Of String))
ここを
    Private Sub GetSubDirectories(ByVal DirPath As String, ByRef Dirs As List(Of String), Level As Integer)
として

>         For Each strDir As String In System.IO.Directory.GetDirectories(DirPath)
>             Dirs.Add(strDir)
>             GetSubDirectories(strDir, Dirs)
ここを
    IF Level < 2 Then
        GetSubDirectories(strDir, Dirs, Level + 1)
    End If

>         Next strDir
>     End Sub

とすると良いと思います。試していないので動きに合わせて調整してみて下さい。
階層数を指定するならもうひとつ引数を増やすと良いです。

引用返信 編集キー/
■68746 / inTopicNo.3)  Re[2]: 階層数指定フォルダパスリスト出力
□投稿者/ sogood (2回)-(2013/11/11(Mon) 13:12:04)
shuさん大変有り難うございます、動作しました。大変感謝致します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -