查询具有特定属性的文件列表的文件系统?

时间:2011-03-23 03:13:24

标签: linq

我希望能够查询文件夹(和子文件夹)并获取满足特定属性的某些条件的文件列表...例如,所有文件都包含:

在c:\ somefolder下 file_extension =“。abc”
在x和y KB之间的文件大小 (文件名如'%this'或文件名如'%that%'和文件名不像'%somethingelse%'
date1和date2之间的修改日期

这种事情是否可以使用LINQ,语法是什么样的?

1 个答案:

答案 0 :(得分: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;