1

複数の検索などに必要なすべてのファイルを取得するだけで、素晴らしい仕事をするこの素敵なコードがあります。

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 でリストを作成 > テキストファイルに書き込みます *

4

2 に答える 2