【问题标题】:Fileinfo Millisecond of last access isn't updateFileinfo 上次访问的毫秒数未更新
【发布时间】:2009-08-16 14:06:17
【问题描述】:

在方法 monitorCallback() 中,我将时间写入文本文件。 写入文件后,我检查文件的 FileInfo 并打印它。

我得到了以下结果:

time = 16/08/2009 14:01:46, mili = 307
time = 16/08/2009 14:01:51, mili = 291
time = 16/08/2009 14:01:56, mili = 291
time = 16/08/2009 14:02:01, mili = 291
time = 16/08/2009 14:02:06, mili = 291
time = 16/08/2009 14:02:11, mili = 291

我不明白为什么时间是变化的,但毫秒是固定的

 private Timer monitor;
 public Window1()
            {
                InitializeComponent();
                monitor = new Timer(monitorCallback, null, 0, 5000);
            }

    private void monitorCallback(object state)
            {
                string path = @"C:\Test.txt";
                Stream stream = File.OpenWrite(path);
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(DateTime.Now);
                writer.Close();

                FileInfo fileInfo = new FileInfo(path);
                Dispatcher.Invoke(DispatcherPriority.Normal,
                    new Action(delegate
                   {
                         Debug.WriteLine( "time = " + fileInfo.LastWriteTimeUtc + ", mili = " +
     fileInfo.LastWriteTimeUtc.Millisecond);


                   }));

                fileInfo = null;

            }

【问题讨论】:

  • 似乎找不到任何关于它的信息,但也许是时间粒度?

标签: c# .net fileinfo


【解决方案1】:

您恰好每 5000 毫秒调用一次此操作。所以如果操作完成时间少于 1 毫秒,文件时间戳的毫秒部分不会改变,例如:

  • 时间 1 = 16/08/2009 14:01:51.291
  • time2 = 16/08/2009 14:01:56.291(= time1 + 5000 毫秒)

尝试更改间隔(例如更改为 5003 毫秒)以查看毫秒部分是否已更新。

【讨论】:

  • 第一个时间戳和第二个时间戳之间的差异是5000毫秒我应该看到这个,时间戳改变了但只有这个毫秒属性没有改变
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
相关资源
最近更新 更多