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

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

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

フォルダ以下にあるサブフォルダを全て取得について

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

■96072 / inTopicNo.1)  フォルダ以下にあるサブフォルダを全て取得について
  
□投稿者/ ゆい (4回)-(2020/10/19(Mon) 23:01:25)

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

連日ですみません。

Windows10  Visual Studio 2017 Desktop Express です。

Dim subFolders As String() = System.IO.Directory.GetDirectories("C:\test", "*", System.IO.SearchOption.AllDirectories)
ListBox1.Items.AddRange(subFolders)

これで "C:\test"以下の全てのサブフォルダを取得出来ると思うのですが、
何故かエクスプローラーで開いても存在しないサブフォルダまでもが出ても来るのですが何だかお分かりになるでしょうか?

その存在しないサブフォルダとは、既に存在するサブフォルダ名の後ろに、何故か「\initial_parameters」 を付けたものです。


引用返信 編集キー/
■96076 / inTopicNo.2)  Re[1]: フォルダ以下にあるサブフォルダを全て取得について
□投稿者/ shu (1235回)-(2020/10/20(Tue) 07:51:35)
No96072 (ゆい さん) に返信
> 連日ですみません。
>
> Windows10  Visual Studio 2017 Desktop Express です。
>
> Dim subFolders As String() = System.IO.Directory.GetDirectories("C:\test", "*", System.IO.SearchOption.AllDirectories)
> ListBox1.Items.AddRange(subFolders)
>
> これで "C:\test"以下の全てのサブフォルダを取得出来ると思うのですが、
> 何故かエクスプローラーで開いても存在しないサブフォルダまでもが出ても来るのですが何だかお分かりになるでしょうか?
>
> その存在しないサブフォルダとは、既に存在するサブフォルダ名の後ろに、何故か「\initial_parameters」 を付けたものです。
>
>
エクスプローラーで隠しファイルの表示とかすると表示されたりしませんか?
引用返信 編集キー/
■96078 / inTopicNo.3)  Re[2]: フォルダ以下にあるサブフォルダを全て取得について
□投稿者/ 774RR (837回)-(2020/10/20(Tue) 08:10:28)
Alternative Data Stream であるとか
引用返信 編集キー/
■96085 / inTopicNo.4)  Re[1]: フォルダ以下にあるサブフォルダを全て取得について
□投稿者/ ゆい (5回)-(2020/10/20(Tue) 15:45:12)
2020/10/20(Tue) 23:07:41 編集(投稿者)

No96076 (shu さん)
No96078 (774RR さん)

ごめんなさい。
大きな間違いをしてるのかもしれません。

Dim subFolders As String() = System.IO.Directory.GetDirectories("C:\test", "*", System.IO.SearchOption.AllDirectories)

これでは"C:\test"の下にあるサブフォルダ名だけではなくて、もしかしてもう一つ下にあるサブフォルダ名までものくっつけての表示ともなるのでしょうか?
よく調べてみたら"C:\test"の下の下にフォルダがある時のみ、そのようにもなってもいます。

そこで改めて質問なんですが、下の下にフォルダがあってもなくても、"C:\test"の下フォルダ名までを取得する方法はないでしょうか?

よろしくお願いします。
引用返信 編集キー/
■96090 / inTopicNo.5)  Re[2]: フォルダ以下にあるサブフォルダを全て取得について
□投稿者/ とっちゃん (696回)-(2020/10/21(Wed) 00:38:58)
No96085 (ゆい さん) に返信
> これでは"C:\test"の下にあるサブフォルダ名だけではなくて、もしかしてもう一つ下にあるサブフォルダ名までものくっつけての表示ともなるのでしょうか?
> よく調べてみたら"C:\test"の下の下にフォルダがある時のみ、そのようにもなってもいます。
>
> そこで改めて質問なんですが、下の下にフォルダがあってもなくても、"C:\test"の下フォルダ名までを取得する方法はないでしょうか?
>
c:\test\a\
c:\test\b\
c:\test\c\d\

というようなフォルダ構成だった場合、

c:\test\a
c:\test\b
c:\test\c

が列挙されるようにするには?ということでいいですか?

2つ目が "*" (すべてにマッチ) なので、System.IO.Directory.GetDirectories( "C:\test" ) で意図した形になると思います。

3つのパラメータ構成でという場合は、AllDirectories ではなく TopDirectoryOnly を指定すれば、検索対象フォルダ直下のサブフォルダのみとなります。

引用返信 編集キー/
■96097 / inTopicNo.6)  Re[3]: フォルダ以下にあるサブフォルダを全て取得について
□投稿者/ ゆい (6回)-(2020/10/21(Wed) 14:55:01)
No96090 (とっちゃん さん) に返信

ありがとうございます。

その通りです。
TopDirectoryOnly を指定し解決しました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ