如何添加文件创建日期筛选器以筛选今日和明日创建的文件
解决方案
你只需要在原有筛选条件中新增明日日期的匹配规则即可,明日日期可通过DateTime.Today.AddDays(1).Date获取。
修改后的完整代码如下:
Dim pdfList As String() = _ Directory.GetFiles(sourceDir, "*.PDF").Where(Function(file) Dim creationDate = New FileInfo(file).CreationTime.Date ' 匹配今日或明日的创建日期 Return creationDate = DateTime.Today.Date OrElse creationDate = DateTime.Today.AddDays(1).Date ).ToArray() For Each f As String In pdfList ' 移除文件名前缀的路径 Dim fName As String = f.Substring(sourceDir.Length + 1) ' 用Path.Combine方法安全拼接路径,目标路径存在重名文件时会直接覆盖 File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, _ fName), True) Next
变更说明
- 原筛选逻辑仅匹配当日创建的文件,新增
OrElse creationDate = DateTime.Today.AddDays(1).Date后即可同时匹配次日创建的文件 - 补充了
.ToArray()方法,避免IEnumerable(Of String)类型无法直接赋值给字符串数组的编译错误 - 如果你的文件存储的是UTC时间,把
CreationTime替换为CreationTimeUtc即可避免时区导致的筛选偏差
内容的提问来源于stack exchange,提问作者Simone
相关产品推荐
相关产品推荐

