1

C# で名前と不明な拡張子でファイルを簡単に見つける賢い方法はありますか?

さまざまな種類の .jpg、.gif、および .png の画像を含む画像フォルダーがあります。そして、プログラムが知っているのは画像の名前だけで、拡張子は知りません。

大きな再帰的なリソース消費ループを行わずに、その名前でファイルを取得することは可能ですか?

4

4 に答える 4

10

メソッドを使用してEnumerateFiles、検索パターンを指定できます。

var files = Directory.EnumerateFiles(@"c:\work", "somefilename.*");

これはもちろん、IEnumerable<string>この検索パターンに一致するすべてのファイルの を返します。1 つしかないことがわかっている場合、またはリストの最初のものを取得したい場合は、それを LINQ でチェーンして、結果をさらにフィルター処理します。

于 2013-06-20T07:10:27.670 に答える
1

はい、可能です。検索パターンを 2 番目のパラメーターとして受け入れるオーバーロードされたDirectory.GetFilesメソッドを使用します。

string[] files = Directory.GetFiles(@"c:\images", fileName + ".*");
于 2013-06-20T07:11:54.897 に答える
0

いくつかのオプションがあります。

  1. 事前にファイル インデックスを作成します (単純な辞書でうまくいきます)。
  2. Windows 検索 API を使用します
  3. EnumerateFiles を使用しますが、パフォーマンスに関しては、これは少し最適化された大きな再帰トラバースに似ています。
于 2013-06-20T07:11:30.843 に答える