0

次のようなファイルのリストが与えられた場合:

file_1.txt
file_2.txt
file_3.txt
file_4.txt
file_5.txt
file_6.txt

Directory.EnumerateFiles()ファイルの範囲またはリストを取得するために呼び出すにはどうすればよいですか? 例えば

Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "file_*.txt", SearchOption.TopDirectoryOnly)

上記の6つのファイルすべてが返され、これまでのところ問題ありません。file_3.txtしかし、範囲 (つまり fromからfile_5.txt) またはリスト (つまりfile_1.txt, file_4.txtand )を取得したい場合はどうすればよいfile_6.txtでしょうか?

私が探しているのは次のようなものです (以下のコードは機能しません... アイデアを提供するためだけです):

Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "file_{3-5}.txt", SearchOption.TopDirectoryOnly)

一連のファイルを取得するには

file_3.txt
file_4.txt
file_5.txt

... その後

Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "file_{1,4,6}.txt", SearchOption.TopDirectoryOnly)

ファイルの正確なリストを取得するには

file_1.txt
file_4.txt
file_6.txt

どんな助けでも大歓迎です。

4

3 に答える 3

1

LINQ と組み合わせます。

Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "file_*.txt").Skip(2).Take(3);

Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "file_*.txt").Where(...);
于 2013-07-29T18:00:33.810 に答える
1

Directory.EnumerateFiles は、単純なワイルドカードでのみ機能するようです。ただし、この質問/回答 ( C# で正規表現に従ってファイルを検索する方法) によると。LINQ と正規表現の一致を使用して、代わりにフィルタリングを行うことができますか?

于 2013-07-29T17:59:41.300 に答える