我知道这段代码不起作用,但描述的很好,我想尝试做什么,我想在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,因为在更改时引发了多个事件。
答案 0 :(得分:12)
尝试使用FileSystemWatcher。
收听文件系统更改 通知和提出事件时 目录,或目录中的文件, 变化。
答案 1 :(得分:3)
为什么要比较字符串表示?如果oldValue
也是DateTime
,请按原样进行比较:
if(lastWriteTime.ToString() > oldValue)
// ...
另外,请确保oldValue
的范围大于timer1_Tick
的范围(即,确保它是类成员变量)。
当然,不要重新发明轮子:FileSystemWatcher
。
答案 2 :(得分:1)
考虑FileSystemWatcher课程。它运作得很好。
但是,有一点需要警惕的是,在尝试监视网络安装的文件时,可能存在这些问题,至少在.NET 2.0中是这样。我们发现,如果网络连接中断了一段时间,它们可能会失败。答案 3 :(得分:0)
查看FileSystemWatcher课程。它可以监视文件并在事件发生变化时引发事件。