2011-09-02 8 views
8

私は、次のコードがありますディレクトリパスをワイルドカードで指定することはできますか?

foreach (string file in Directory.GetFiles(sourcePath)) 
{ 
    // whatever 
} 

特定のディレクトリからファイルを取得します。ワイルドカードを使用してディレクトリを照合することは可能でしょうか?たとえば:

c:\test\dictionary\ 
c:\test\directory\ 
c:\test\dig\ 

は、私はあなたがGetFilesメソッドにファイルフィルタを渡すことができることを見ましたが、それは、ファイルだけでなく、ディレクトリ名に適用されます。

c:\test\di* 

は、ディレクトリ内のすべてのファイルに一致します。

foreach (string directory in Directory.GetDirectories(sourcePath, "di*")) 
{ 
    // whatever 
} 

答えて

10

はあなたが another overloadがあります検索オプションを指定する必要がある場合は、検索パターンを指定したりすることができます。このため overload持っていますディレクトリを指定するとき。あなたの例では、特定のディレクトリに `di`で始まるファイルしか得られませんか?
+0

私はそれがファイルフィルタで、ワイルドカードの使用を許可していないと信じて: –

+2

@Abe Miessler、いいえ、それは完全に細かいディレクトリ名で動作します。 'Directory.GetDirectories(@" c:\ test "、" di * "))'は、質問に表示されているすべてのディレクトリと一致します。 –

+0

ああ!さて、私にテストさせてください。 –

関連する問題