其他分享
首页 > 其他分享> > 删除并重新创建Ghost文件后,该文件仍处于活动状态

删除并重新创建Ghost文件后,该文件仍处于活动状态

作者:互联网

我只是注意到了删除和重新写入文件的奇怪行为:如果两次操作之间的间隔足够短,则文件创建时间不会得到更新.

我运行了以下代码:

File.Delete("hello");
using(var stream = new StreamWriter("hello"))
{
    stream.WriteLine("hello");
}
var f = new FileInfo("hello");
Console.WriteLine("{0} {1}ms", f.CreationTime, f.CreationTime.Millisecond);

如果我在using(…)行上放置一个断点,则可以看到该文件在删除后消失了,但是最后它仍然会给我旧的创建日期.我什至可以从资源管理器中手动删除文件,然后运行此代码,它仍显示旧的创建时间.

但是,如果我在删除和重新创建之间等待不确定的时间(大约1分钟),则创建时间设置正确(如果我在上述断点上与调试器等待,则可以使用).

这是哪里来的?是Windows记录的行为吗?我忘记了什么吗?

PS:我正在Windows XP上测试它的重要性.

解决方法:

这是Windows中称为文件隧道的已知问题/功能.

参考:
http://support.microsoft.com/kb/172190

有关:
https://serverfault.com/questions/92757/incorrect-file-creation-date-in-windows-xp-vista
Why Windows sets new created file’s “created time” property to old time?
Windows filesystem: Creation time of a file doesn’t change when while is deleted and created again

标签:file,delete-file,c
来源: https://codeday.me/bug/20191101/1982008.html