创建一个修改目录日期的循环

时间:2017-10-06 20:03:51

标签: c# loops recursion

我正在尝试设置一个循环,修改@"C:\testFolder"中所有目录的日期。到目前为止我的代码粘贴在下面,任何帮助都表示赞赏。

 static void Main()
{
    string n = @"C:\testFolder";
    DateTime dtime1 = new DateTime(2015, 1, 3);

    if (Directory.Exists(n))
        Directory.SetCreationTime(n, dtime1);
        Directory.SetLastWriteTime(n, dtime1);

        Console.WriteLine("Done");

}

2 个答案:

答案 0 :(得分:2)

没有大括号的if语句仅适用于紧跟其后的语句。确保用支架包围整个街区。

此外,您可以Directory.GetAllDirectories(..)SearchOption一起使用,以指定您希望递归testFolder 下的所有目录。以下显示了这一点,但如果您想要的话,也可以使用SearchOption.TopDirectoryOnly

static void Main()
{
    string n = @"C:\testFolder";
    DateTime dtime1 = new DateTime(2015, 1, 3);

    if (Directory.Exists(n)) {
        string[] allSubDirectories = Directory.GetDirectories(n, "*", SearchOption.AllDirectories);
        foreach(var dir in allSubDirectories) {
            Directory.SetCreationTime(n, dtime1);
            Directory.SetLastWriteTime(n, dtime1);
        }
    }

    Console.WriteLine("Done");
}

答案 1 :(得分:0)

如果要为该目录​​中的所有目录设置日期,可以执行以下操作:

 static void Main()
{
    string n = @"C:\testFolder";
    DateTime dtime1 = new DateTime(2015, 1, 3);

    if (Directory.Exists(n))
    {
         Directory.SetCreationTime(n, dtime1);
         Directory.SetLastWriteTime(n, dtime1);
         var directories = Directory.GetDirectories(n);

         foreach(directory in directories)
         {
              Directory.SetCreationTime(directory , dtime1);
              Directory.SetLastWriteTime(directory , dtime1);
         }

    }
    Console.WriteLine("Done");

}