知りたいこと
フォルダー ┣ サブフォルダー1 ┃ ┗サブフォルダー1_1 ┃ ┗サブフォルダー1_1_1 ┃ ┗ サブフォルダー2 ┗サブフォルダー2_1
C#でWindowsアプリケーションを作っています。
上記のような、フォルダー階層を持つフォルダーのすべてのサブフォルダーの絶対パスをリストとして一括で取得したいと考えています。
その際に、以下のようにサブフォルダー内のサブフォルダーが先にくるような順番になるように取得する方法がございましたら、ご教授いただけないでしょうか?
0. フォルダー/サブフォルダー1
0. フォルダー/サブフォルダー1/サブフォルダー1_1
0. フォルダー/サブフォルダー1/サブフォルダー1_1/サブフォルダー1_1_1
0. フォルダー/サブフォルダー2
0. フォルダー/サブフォルダー2/サブフォルダー2_2
試したこと
C#
1using System; 2using System.Collections.Generic; 3 4namespace sample 5{ 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 //"C:\フォルダー"以下のサブフォルダをすべて取得する 11 IEnumerable<string> subFolders = System.IO.Directory.EnumerateDirectories(@"C:\フォルダー", "*", System.IO.SearchOption.AllDirectories); 12 13 //サブフォルダを列挙する 14 foreach (string subFolder in subFolders) 15 { 16 Console.WriteLine(subFolder); 17 } 18 } 19 } 20}
上記のコードですべてのサブフォルダーの絶対パスを取得することはできましたが、取得した順番が以下のようになっており、取得したい順番で取得できませんでした。
並び変えることで問題は解決すると思ったのですが、正確かつ高速なソート方法が思いつかず困っています。
0. フォルダー/サブフォルダー1
0. フォルダー/サブフォルダー2
0. フォルダー/サブフォルダー1/サブフォルダー1_1
0. フォルダー/サブフォルダー2/サブフォルダー2_2
0. フォルダー/サブフォルダー1/サブフォルダー1_1/サブフォルダー1_1_1
回答2件
あなたの回答
tips
プレビュー