我有一个客户,他声称他有一个应用程序,可以更新日志文件中的一些数据,而不更改该日志文件的时间戳。为什么会有这样的应用程序行为?
5us2dqdw1#
这是Windows 2008(R2)、Windows 7及以上版本的新功能。修改时间不再像Windows 2003中那样更新。http://blogs.technet.com/b/asiasupp/archive/2010/12/14/file-date-modified-property-are-not-updating-while-modifying-a-file-without-closing-it.aspx然后呢http://social.technet.microsoft.com/Forums/en-US/winservergen/Thread/2B8BACA2-9C1B-4D80-80ED-87A3D6B1336F
rta7y2nd2#
对于构建自动化有一个很好的解决方法:
copy /b <Filename> +,,
我在这里找到了这个窍门:https://superuser.com/questions/292630/how-can-i-change-the-timestamp-on-a-file。奇怪的是,“复制/?”没有说关于/b选项。
ws51t4hk3#
我知道,这是一个非常糟糕的C#解决方案,用于一些特殊情况。我的服务器写日志,我需要使用FileSystemWatcher获取文件更改。所以,每次我的日志文件更新时,我都会创建一个同名的新空文件,但扩展名为“.update”。
FileSystemWatcher
try { string updateFlagFile = Path.ChangeExtension(myLogFilename, ".update"); using (File.Create(updateFlagFile)) { } } catch (Exception) { }
我的FileSystemWatchers跟踪此文件,我知道日志已更新。
FileSystemWatchers
3条答案
按热度按时间5us2dqdw1#
这是Windows 2008(R2)、Windows 7及以上版本的新功能。修改时间不再像Windows 2003中那样更新。
http://blogs.technet.com/b/asiasupp/archive/2010/12/14/file-date-modified-property-are-not-updating-while-modifying-a-file-without-closing-it.aspx
然后呢
http://social.technet.microsoft.com/Forums/en-US/winservergen/Thread/2B8BACA2-9C1B-4D80-80ED-87A3D6B1336F
rta7y2nd2#
对于构建自动化有一个很好的解决方法:
我在这里找到了这个窍门:https://superuser.com/questions/292630/how-can-i-change-the-timestamp-on-a-file。奇怪的是,“复制/?”没有说关于/b选项。
ws51t4hk3#
我知道,这是一个非常糟糕的C#解决方案,用于一些特殊情况。我的服务器写日志,我需要使用
FileSystemWatcher
获取文件更改。所以,每次我的日志文件更新时,我都会创建一个同名的新空文件,但扩展名为“.update”。
我的
FileSystemWatchers
跟踪此文件,我知道日志已更新。