c# - 如何在 C# 中复制具有特定日期的文件

标签 c# file date copy

我的代码有问题我可以让它复制一个目录及其子目录中的所有文件并且我有一个 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/

相关文章:

c - 从c中的随机访问文件中读取

Java - 文件的 URL

c# - 如何使用反射调用带有 ref/out 参数的方法

c# - XML 解析为属性返回 null

c - execvp 如何运行命令?

javascript - 这是什么类型的日期格式以及如何将其格式化为人类可读的格式?

javascript - Date() 对象中的 UTC 日期在 Safari 中输出不同

date - 如何在 Hive 的范围之间按顺序创建日期表?

c# - 下载时内存优化

c# - 在不添加任何数据的情况下重新生成 Code-First 数据库