【问题标题】:Filter Directory structure by Created date and then Copy using c#按创建日期过滤目录结构,然后使用 c# 复制
【发布时间】:2016-11-22 10:42:37
【问题描述】:

我想通过创建日期属性过滤整个目录结构中的文件,然后使用 c# 将这个新过滤的目录结构复制到目标位置。

我找到了solution,但它没有过滤。

using System;
using System.IO;

class CopyDir
{
  public static void Copy(string sourceDirectory, string targetDirectory)
  {
    DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
    DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

    CopyAll(diSource, diTarget);
  }

public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
    Directory.CreateDirectory(target.FullName);

    // Copy each file into the new directory.
    foreach (FileInfo fi in source.GetFiles())
    {
        Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
        fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
    }

    // Copy each subdirectory using recursion.
    foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
    {
        DirectoryInfo nextTargetSubDir =
            target.CreateSubdirectory(diSourceSubDir.Name);
        CopyAll(diSourceSubDir, nextTargetSubDir);
    }
}

public static void Main()
{
    string sourceDirectory = @"c:\sourceDirectory";
    string targetDirectory = @"c:\targetDirectory";

    Copy(sourceDirectory, targetDirectory);
}

// Output will vary based on the contents of the source directory.

}

【问题讨论】:

  • 您要准确过滤什么?按文件类型或创建日期,或者大小?
  • @TripleEEE 仅限创建日期
  • 向我们展示您的代码,我们或许可以提供帮助
  • @SimonPrice 我已经编辑了我的帖子以包含代码

标签: c# filter copy directory-structure


【解决方案1】:

在您告诉我们您想按创建日期“过滤”之后,您可以执行以下操作:

//If date is newer than 1 week
if(fi.CreationTime >= DateTime.Now - TimeSpan.FromDays(7))
   fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2014-04-09
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多