循环浏览特定系统日期的所有文件-C#
我正在尝试将特定系统日期的所有文件从一个目录复制到另一个目录。但是,所有文件都会被复制,而不仅仅是在指定的日期。 如果我们假设文件位于循环浏览特定系统日期的所有文件-C#,c#,fileinfo,C#,Fileinfo,我正在尝试将特定系统日期的所有文件从一个目录复制到另一个目录。但是,所有文件都会被复制,而不仅仅是在指定的日期。 如果我们假设文件位于c:\testfiles\ Date_Modified Name 2/14/2020 5:00 AM txt_1.csv 2/14/2020 5:30 AM txt_2.csv 2/14/2020 6:00 AM txt_3.csv 2/13/2020 6:00 AM txt_4.
c:\testfiles\
Date_Modified Name
2/14/2020 5:00 AM txt_1.csv
2/14/2020 5:30 AM txt_2.csv
2/14/2020 6:00 AM txt_3.csv
2/13/2020 6:00 AM txt_4.csv
2/13/2020 6:15 AM txt_5.csv
下面的代码应获取最近的日期,即2/14/2020
,并仅循环查看2/14
的文件。但这段代码也在收集2/13
文件
// this gives me the latest date.
DateTime dt = File.GetLastWriteTime(LatestFile);
DateTime dateonly = dt.Date;
// this is the code which I assumed would loop through only 2/14, but it is looping through all files.
var latestFiles = Directory.GetFiles(sourcepath).Where(x => new FileInfo(x).CreationTime.Date == dt.Date);
foreach (string s in latestFiles)
{
string destfile = targetPath + System.IO.Path.GetFileName(s);
System.IO.File.Copy(s, destfile, true);
}
如何仅将2/14的文件复制到另一个目录?我必须查找最近的日期,并将该日期的所有文件复制到另一个目录中
我错过了什么 我所看到的是,您正在使用GetLastWriteTime并与CreationTime进行比较的最新文件的日期不同
static void Main(string[] args)
{
var path = "c:/test"; //Create the directory with some files
var latestFile = "c:/test/test2.txt"; // Name of one file which is in c:/test
var targetPath = "c:/test2"; //Create the directory
Directory.GetFiles(path)
.Where(e => File.GetLastWriteTime(e).Date.Equals(File.GetLastWriteTime(latestFile).Date))
.ToList()
.ForEach(e =>
{
Console.WriteLine($"Copying {e}");
File.Copy(e, Path.Join(targetPath, Path.GetFileName(e)), true);
});
}
您确定不想要
LastWriteTime
而不是CreationTime
?Date\u Modified
!=<代码>CreationTime@Enigmativity。。我想获取目录中最新日期的所有文件。。我对c#非常陌生,不知道该使用哪一个。所有文件都有3个日期(创建、访问、写入dir
命令项),您可以使用dir*/t:c
或dir*/t:A
或dir*/t:W
查看这些日期。看看这些信息,弄清楚“最近的日期”是什么意思——然后发帖澄清。