首页 > 解决方案 > C# 从具有特定 CreationTime 的目录中获取文件

问题描述

我正在编写一个短代码来将文件从一个目录移动到另一个目录。我的代码很简单,工作正常,看起来像这样:

public void copy()
{
     string sourcePath = @"/Users/philip/Desktop/start";                                   
     string destinationPath = @"/Users/philip/Desktop/Ziel";                            

     string[] files = Directory.GetFiles(sourcePath)               
            
     foreach (string s in files)                                                 
     {
          string fileName = System.IO.Path.GetFileName(s);                               
          string destFile = System.IO.Path.Combine(destinationPath, fileName);
          System.IO.File.Copy(s, destFile, true);
     }
}

程序从源路径获取所有文件,并在 foreach 循环中将目标路径组合到每个文件中,包含目标路径和文件名。然后它移动它。一切正常。

我现在的目标是,不要将我目录中的所有文件都存储到字符串数组中。我只想获取 01.07.2021 之后具有 CreationTime 的文件。有没有简单快捷的方法来做到这一点?

我已经使用它来获取文件,但它指定了一个单一的日期,而不是特定日期之后的所有文件:

var files = Directory.GetFiles(sourcePath).Where(x => new FileInfo(x).CreationTime.Date == DateTime.Today.Date);

如果你能帮助我,我会很高兴。

最好的问候,利亚姆

标签: c#linqfiledatepath

解决方案


你可以使用FileInfo

FileInfo fileInfo = new(s);

if (fileInfo.CreationTime >= DateTime.Parse("01/07/2021"))
{
  ...
}

推荐阅读