我的代码有问题我可以让它复制一个目录及其子目录中的所有文件并且我有一个 if 语句告诉它如果修改日期与今天相同但它仍然复制一个文件复制我在 Internet 上搜索的所有文件以寻找解决方案,它们都给出了模糊的答案,这些答案与我已经拥有的 doe 相似,我已在下面粘贴了代码。
DirectoryInfo source = new DirectoryInfo(dlg.SelectedPath);
DirectoryInfo target = new DirectoryInfo(dlg2.SelectedPath);
DirectoryInfo dir = new DirectoryInfo(dlg.SelectedPath);
FileInfo[] fis = dir.GetFiles("*", SearchOption.AllDirectories);
foreach (FileInfo fi in fis)
{
if (fi.LastWriteTime.Date == DateTime.Today.Date)
{
FileInfo[] sourceFiles = source.GetFiles("*", SearchOption.AllDirectories);
foreach (FileInfo fc in sourceFiles)
if (fc.LastWriteTime.Date == DateTime.Today.Date)
for (int i = 0; i < sourceFiles.Length; ++i)
File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name, true);
}
}
任何帮助将不胜感激
最佳答案
不应该是这样吗?
FileInfo[] fis = dir.GetFiles("*", SearchOption.AllDirectories);
foreach (FileInfo fi in fis)
{
if (fi.LastWriteTime.Date == DateTime.Today.Date)
{
File.Copy(fi.FullName, target.FullName + "\\" + fi.Name, true);
}
}
现在的问题是,只要找到满足条件的文件,就会将源文件夹中的所有文件复制到目标文件夹,这是错误的。您应该只复制您需要的文件。
上面的代码只适用于根文件夹中的文件,但也很容易使其适用于子文件夹。只需创建另一个函数来查找文件夹中的所有子文件夹,然后将每个子文件夹作为参数调用上面的代码。
关于c# - 如何在 C# 中复制具有特定日期的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898521/