Как многопоточный Windows API?

Это позволяет использовать тот же синтаксис и функциональность, что и Directory.GetFiles(path, pattern, options);, за исключением массива шаблонов, а не только одного.

Таким образом, вы также можете использовать его для выполнения таких задач, как поиск всех файлов, содержащих слово «налоги», которые вы использовали для хранения записей за последний год (xlsx, xls, odf, csv, tsv, doc, docx, pdf, txt ...).

public static class CustomDirectoryTools {
    public static string[] GetFiles(string path, string[] patterns = null, SearchOption options = SearchOption.TopDirectoryOnly) {
        if(patterns == null || patterns.Length == 0)
            return Directory.GetFiles(path, "*", options);
        if(patterns.Length == 1)
            return Directory.GetFiles(path, patterns[0], options);
        return patterns.SelectMany(pattern => Directory.GetFiles(path, pattern, options)).Distinct().ToArray();
    }
}

Чтобы получить все файлы изображений на вашем диске c, вы будете реализовывать его следующим образом.

string path = @"C:\";
string[] patterns = new[] {"*.jpg", "*.jpeg", "*.jpe", "*.jif", "*.jfif", "*.jfi", "*.webp", "*.gif", "*.png", "*.apng", "*.bmp", "*.dib", "*.tiff", "*.tif", "*.svg", "*.svgz", "*.ico", "*.xbm"};
string[] images = CustomDirectoryTools.GetFiles(path, patterns, SearchOption.AllDirectories);
0
задан Macelaru Tiberiu 1 March 2019 в 10:45
поделиться