2013-11-17 2 views
0

Я хочу запросить каталог, я только хочу собрать из файлов каталога, которые являются текстовыми файлами. (CSV, TXT, INI)Список фильтров по нескольким периметрам в одном запросе

Другие типы файлов, которые я планирую игнорировать.

Я пытаюсь сделать это в одном запросе, используя Directory.GetFiles, который работает, если я запрашиваю один тип файла за раз. Я хочу сделать это в одном запросе.

Это прекрасно работает только для принятия TXT файлы:

var sourceFolderContents = Directory.GetFiles(folder).ToList().Where(x => x.Split('.').Last().ToUpper().Equals("TXT")); 

, но как я могу добавить элемент И «CSV» AND «INI» к этому так, что sourceFolderContents имеет список CSV, TXT и INI файлов в пределах ?

ответ

1
var extensions = new string[]{".TXT",".CSV",".INI"}; 
var sourceFolderContents = Directory.GetFiles(folder) 
     .Where(f=>extensions.Contains(Path.GetExtension(f).ToUpper())) 
     .ToList(); 

ПРИМЕЧАНИЕ: При использовании GetFiles, следует рассмотреть возможность установки разрешения с использованием SetAccessControl, в противном случае в somecase может быть какой-то несанкционированный доступ запрещен или исключение.

+0

@elgonzo уже отредактировал его :) –

+0

Да, я видел, я уже удалил свой комментарий :) – elgonzo

+0

Кажется, я не могу получить пример (который имеет прекрасный смысл теперь, когда я его вижу), чтобы работать. Никакие файлы не возвращаются, однако, используя мой метод или даже просто GetFiles, я могу получить список файлов. – Damo

Смежные вопросы