2011-03-23 4 views
3

Я хотел бы иметь возможность запросить папку (и вложенные папки) и получить список файлов, отвечающих определенным критериям, по определенным атрибутам ... так, например, все файлы, которые имеют:Запросить файловую систему для списка файлов с определенными атрибутами?

под c: \ SomeFolder
file_extension = ".abc"
Filesize между х и у КБ
(имя файла, как '%' или этого файла, как '%', что% и имя файла не нравится '% somethingelse%'
ModifiedDate между date1 и date2

Возможно ли это, используя LINQ, и каков будет синтаксис?

ответ

2

Да. Синтаксис будет выглядеть примерно так:

var files = from file in new DirectoryInfo(@"c:\some_folder") 
          .GetFiles("*.abc", SearchOption.AllDirectories) 

      let lengthInKb = file.Length/1024D 
      let name = file.Name 
      let modifiedDate = file.LastWriteTime.Date 

      where (lengthInKb >= x && lengthInKb <= y) 
       && (name.EndsWith("this") || name.Contains("that")) 
       && !name.Contains("somethingelse") 
       && (modifiedDate >= date1 && modifiedDate <= date2) 

      select file; 
+0

очень приятно, спасибо! – tbone

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