如果File.SetLastWriteTimeUtc
应用于用户临时目录,则设置为与指定的修改时间不同的 1-2 秒。OnLastWriteTime
是正确应用的时区(以小时为单位的差异),但也存在以秒为单位的奇怪差异。
例子:
using System.IO;
string tempDir = System.IO.Path.GetTempPath();
// required new last write datetime 2012-12-05 15:50:15
DateTime newLastWriteTimeUtc = new DateTime(2012, 12, 5, 15, 50, 15, 0);
string testFilePath = Path.Combine(tempDir, "Test.txt");
if (File.Exists(testFilePath))
{
File.SetLastWriteTimeUtc(testFilePath, newLastWriteTimeUtc);
FileInfo fInfo = new FileInfo(testFilePath);
// you get real datetime 2012-12-05 15:50:16
DateTime lastWriteTimeUtc = fInfo.LastWriteTimeUtc;
}
谁能解释这种行为?