4

パス文字列が不完全であると仮定C:\dir\temp\f します。次のファイルシステムがあります。

C:\dir\
c:\dir\temp\
c:\dir\temp\foobar\
c:\dir\temp\foobar2\
c:\dir\temp\bar

ディレクトリのどの部分が最も一致するかを判断したいと思います。この例ではc:\dir\temp\foobar\、パス文字列で始まるためです(foobarよりよく一致しますfoobar2)。どうすれば利用可能なパスを効率的に取得できますか?不完全なパス文字列を分割して/、フォルダが使用可能かどうかをテストする必要がありますか、それともより良い方法がありますか?

4

1 に答える 1

3

基本的に、やりたいことはのようなものですdir C:\dir\temp\f*。.Netでは、を使用してこれを行うことができますがDirectory.GetDirectories()、フルパスをパスとパターンに分割する必要があります。これを行うには、Pathクラスのメソッドを使用できます。したがって、コードは次のようになります。

Directory.GetDirectories(
    Path.GetDirectoryName(path), Path.GetFileName(path) + "*")

これにより、一致するすべてのディレクトリのコレクションが返されるため、そのうちのどれが最も一致するかを自分で判断する必要があります。

于 2012-09-15T21:52:05.313 に答える