首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSystemWatcher错误

FileSystemWatcher错误
EN

Stack Overflow用户
提问于 2015-01-22 06:30:36
回答 1查看 89关注 0票数 0

如果任何外部打开的文本文件被修改或没有修改,我试图使用FileSystemWatcher通知程序(比如Notepad++)。如果文本文件是在我的程序中打开的,并且它也是外部打开的,并且已经被修改了,那么它必须让我的程序知道。

我创建了FileSystemWatcher,如下所示:

代码语言:javascript
复制
Public Sub Watch()
    Dim watcher As New IO.FileSystemWatcher()

    'For watching current directory
    watcher.Path = Path.GetDirectoryName(Var.SaveLocation) 'Note how to obtain current directory
    watcher.NotifyFilter = NotifyFilters.LastWrite Or NotifyFilters.FileName
    watcher.Filter = Path.GetFileName(Var.SaveLocation)

    AddHandler watcher.Changed, AddressOf OnChanged

    watcher.EnableRaisingEvents = True
End Sub

Private Sub OnChanged(sender As Object, e As FileSystemEventArgs)
    MessageBox.Show("Reload")
End Sub

我在我的程序中将Watch()方法添加到OpenFileDialog方法中。因此,每当打开新的文本文件时,FileSystemWatcher就会启动。我的问题是,如果我保存我在程序中打开的文本文件,OnChanged事件就会被激活。当文本文件被外部修改时,它可以正常工作。然而,当我在程序中保存文件时,它的工作方式却是事件触发的。我不想这个,因为它不应该触发,而我在我的程序。

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 07:06:41

我不认为有一种方法可以明确地排除文件系统监视程序中的文件或应用程序。解决方法之一是在保存文件时将文件名添加到列表中,然后在文件系统监视处理程序中检查该列表(并删除该文件)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28082535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档