我正在尝试设置一个循环,修改@"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");
}
答案 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");
}