C# 删除文件并重新创建文件后,不要在windows中更改创建日期
我有申请书。这是一个写日志文件夹 下面是代码C# 删除文件并重新创建文件后,不要在windows中更改创建日期,c#,file,C#,File,我有申请书。这是一个写日志文件夹 下面是代码 if (File.Exists(@"C:\EXT_LOG\LOG.txt")) { File.Delete(@"C:\EXT_LOG\LOG.txt"); } string Data = "xxxxx"; System.IO.StreamWriter file = new StreamWriter(@"C:\EXT_LOG\LOG.txt"); file.WriteLine(Data); file.Dispose(); file.Close
if (File.Exists(@"C:\EXT_LOG\LOG.txt"))
{
File.Delete(@"C:\EXT_LOG\LOG.txt");
}
string Data = "xxxxx";
System.IO.StreamWriter file = new StreamWriter(@"C:\EXT_LOG\LOG.txt");
file.WriteLine(Data);
file.Dispose();
file.Close();
我删除文件(如果存在),并创建同名文件。
当我运行程序时,文件的创建日期不会改变
我猜windows的任何管理器或任何文件表仍然包含该文件
所以,当我删除文件时,是否可以删除管理器或文件表内容???这就是它在windows中的工作方式。我没有在谷歌上搜索“为什么”。但是,您似乎可以使用System.IO.file.SetCreationTime方法通过C#设置文件的创建日期
来源:我就是这样解决这个问题的:
File.WriteAllBytes(outFile, body);
File.SetCreationTimeUtc(outFile, DateTime.UtcNow);
正如dotnetkid提到的,这是默认的windows行为。这种行为的原因可以在这里找到:保留KB文章。@Grantwiney实际上,您可以在Windows资源管理器中自己测试。1) 查找现有的旧文件。2) 删除它3)使用相同的名称创建一个新文件4)新文件将按照旧文件创建相同的名称(假设您足够快)。请参见下面dotnetkid的答案。我自己也很惊讶:)这样做的原因是为了实现安全保存。就像WORD女士做的那样。当应用程序自动保存时,它们不会重写文件。相反,它们移动旧文件,并创建新文件的副本。但是,新文件需要保留旧文件的属性,包括创建时间。在临时文件前面加上~sign,以使隐藏文件能够看到这种情况。
File.WriteAllBytes(outFile, body);
File.SetCreationTimeUtc(outFile, DateTime.UtcNow);