2014-02-04 3 views
0

У меня есть код, который выглядит в базовом каталоге для самого последнего файла, который был написан (изменен). Код отлично работает в том, что он находит точный файл, за которым я работаю, но если есть системный файл, например «Thumbs.db», и если этот файл является самым последним файлом, на который был записан, я найду этот файл (когда Я не хочу). Есть ли способ исключить возврат определенных типов файлов? Файлы, за которыми я работаю, - это все XLS (или XLSX). Вот код, я использую:Исключая определенные файлы при использовании DirectoryInfo.GetFiles()

var vAmeriDirectory = new DirectoryInfo(ConfigurationManager.AppSettings["AmeriFileSourceLoc"]); 
var vAmeriFile = vAmeriDirectory.GetFiles().OrderByDescending(f => f.LastWriteTime).First(); 

ответ

3

Поскольку вы знаете, что вы хотите только XLS и XLSX файлы, добавьте где положение, чтобы гарантировать, что Вы получите только те расширения:

var vAmeriFile = vAmeriDirectory.GetFiles() 
.Where(f => f.Extension.Equals(".xls", StringComparison.InvariantCultureIgnoreCase) 
    || f.Extension.Equals(".xlsx", StringComparison.InvariantCultureIgnoreCase)) 
.OrderByDescending(f => f.LastWriteTime).First(); 

переносы добавлены для удобства чтения. Обратите внимание: если в каталоге нет файлов Excel, First() выдает ошибку. Вместо этого вы можете использовать FirstOrDefault(), который возвращает null.

1

Вы бы вставить Где позвонить в код LINQ для фильтрации данных, используя любые условия исключат соответствующие файлы.

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