2016-05-24 3 views
1

cの文字列を返します。 :GetDirectoriesは私にこんにちはイムは、現在、中に次のようディレクトリを取得#

Regex reg = new Regex(@"\d+(\.\d+)+"); 

私の問題は、ディレクトリパスの新しい文字列リストにあります。私はParentのようなdirectoryinfo関数を使い、そのディレクトリのディレクトリを手に入れたいと思っています。私の文字列のパスをdirectyinfoの型に変換する方法があります。ありがとう! Directory.GetDicrectoriesは、文字列の配列を返すために、何を行うことができますがあなたはルートパスのDirectoryInfoを作成し、代わりにそので作業することができ、あなたのLINQ文の

dirs = Directory.GetDirectories(@"C:\Users\jphillips\Desktop\test", "*", 
     SearchOption.AllDirectories).Where(Path => reg.IsMatch(Path)).Select(x => new 
     DirectoryInfo(x)).ToList(); 

答えて

4

に選択を追加しているまあ

0

、あなただけのこれを行うにはDirectoryInfoクラスを使用し、全体ではなくDirectoryInfoのインスタンスのあなたの正規表現にDirectoryInfo.Nameプロパティを養うことができ

var rootDir = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test"); 
dirs = rootDir.GetDirectories("*", SearchOption.AllDirectories) 
       .Where(d => reg.IsMatch(d.FullName)) 
       .ToList(); 
+0

DirectoryInfoには既にこの機能が組み込まれているため、これを行う理由はありません。 – DVK

1

:パスの。

DirectoryInfo di = new DirectoryInfo(@"C:\Temp"); 
DirectoryInfo[] subDirectories = di.GetDirectories().Where(d => reg.IsMatch(d.Name)); 
関連する問題