我试图在C#中更新文件时引发事件

时间:2010-02-17 14:57:43

标签: c# .net events

我知道这段代码不起作用,但描述的很好,我想尝试做什么,我想在Lastwritetime大于oldvalue date时检查if中的代码。

private void timer1_Tick(object sender, EventArgs e)
{
    DateTime lastWriteTime = File.GetLastWriteTime(@"C:\temp\test_folder\TestFile.txt");

    if (lastWriteTime.ToString() > oldValue.ToString())
    {
        MessageBox.Show("Succsess");
    }
    string oldValue = lastWriteTime.ToString();
}

编辑: 我没有使用SystemfileWatcher,因为在更改时引发了多个事件。

4 个答案:

答案 0 :(得分:12)

尝试使用FileSystemWatcher

  

收听文件系统更改   通知和提出事件时   目录,或目录中的文件,   变化。

答案 1 :(得分:3)

为什么要比较字符串表示?如果oldValue也是DateTime,请按原样进行比较:

if(lastWriteTime.ToString() > oldValue)
    // ...

另外,请确保oldValue的范围大于timer1_Tick的范围(即,确保它是类成员变量)。

当然,不要重新发明轮子:FileSystemWatcher

答案 2 :(得分:1)

考虑FileSystemWatcher课程。它运作得很好。

但是,有一点需要警惕的是,在尝试监视网络安装的文件时,可能存在这些问题,至少在.NET 2.0中是这样。我们发现,如果网络连接中断了一段时间,它们可能会失败。

答案 3 :(得分:0)

查看FileSystemWatcher课程。它可以监视文件并在事件发生变化时引发事件。