複数の検索などに必要なすべてのファイルを取得するだけで、素晴らしい仕事をするこの素敵なコードがあります。
public static IEnumerable<string> GetFiles(string path, string searchPatternExpression = "", SearchOption searchOption = SearchOption.AllDirectories)
{
Regex reSearchPattern = new Regex(searchPatternExpression);
return Directory.EnumerateFiles(path, "*", searchOption)
.Where(file => reSearchPattern.IsMatch(System.IO.Path.GetExtension(file)));
}
ただし、ディレクトリの 1 つにレポートを表示する必要のないフォルダーが 1 つあります。フォルダを「Narnia」と呼びます。があることは知っていますが、Directory.Skip
それを使用する方法が完全にはわかりません。
GetFiles(); を呼び出すコマンド。以下です。返されたリストをtxtファイルに書き出すだけです。そこからフィルタリングできるのだろうか?
internal static void GetFilesPassThrough(string SearchRoot, string extensions, string savepath) //GetFiles Regex Thread Start.
{
try
{
foreach (string file in GetFiles(SearchRoot, extensions))
using (StreamWriter writer = new StreamWriter(savepath, true))
{
writer.WriteLine(file);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + savepath);
}
}
追加情報
James が要求したように、コードがどのように呼び出されるかについて、さらに詳しく説明します。
* GetFilesPassThrough(SearchDirectory, Extensions, savepath) を呼び出すボタンが押されます * 拡張子は、ディレクトリ、.PDF、.txt、.xls などからレポートする必要があるファイルです * 上記の GetFilesPassThrough コードでわかるように、 GetFile() を呼び出し、List で呼び出された各文字列を返します。
*ボタン > GetFilesPassThrough > Get Files でリストを作成 > テキストファイルに書き込みます *