查询文件系统以获取具有某些属性的文件列表?

发布于 2024-10-25 17:52:52 字数 252 浏览 1 评论 0原文

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

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

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

I'd like to be able to query a folder (and subfolders) and get a list of files meeting certain criteria on specific attributes...so, for example, all files that have:

under c:\somefolder
file_extension = ".abc"
filesize between x and y KB
(filename like '%this' or filename like '%that%' and filename not like '%somethingelse%'
modifieddate between date1 and date2

Is this sort of thing possible using LINQ, and what would the syntax look like?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑饮青盏花 2024-11-01 17:52:53

是的。语法看起来像:

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;

Yes. The syntax would look something like:

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文