删除文件并重新创建文件后,不要在Windows中更改创建日期

T.K*_*K S 9 c# file

我有c#应用程序.这个写入登录文件夹.

下面的代码.

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();
Run Code Online (Sandbox Code Playgroud)

我删除文件,如果它存在,我创建具有相同名称的文件.当我运行程序时,文件的创建日期不会改变.

我猜windows任何经理或任何文件表仍然包含该文件.

那么,当我删除文件时,我可以删除管理器或文件表内容吗?

Nik*_*tak 5

这就是它在windows中的工作方式.我没有搜索谷歌为什么.但是,您似乎可以使用System.IO.File.SetCreationTime方法通过C#设置文件的创建日期.

public static void SetCreationTime(
    string path,
    DateTime creationTime
)
Run Code Online (Sandbox Code Playgroud)

来源:https://msdn.microsoft.com/en-us/library/system.io.file.setcreationtime(v=vs.100).aspx

  • 正如dotnetkid所提到的,这是默认的Windows行为.可以在此处找到此行为的原因:https://support.microsoft.com/en-us/kb/172190 (3认同)
  • 保留的知识库文章 [Windows NT 包含文件系统隧道功能](https://web.archive.org/web/20150307194932/http://support.microsoft.com/kb/172190)。 (2认同)