Tag: filesystemwatcher

FileSystemWatcher用于监视文件夹/文件打开

我浏览过但却无法找到有关我所寻求内容的任何信息,如果还有其他post已经过去,那么我道歉。 我正在寻求帮助代码,该代码将监视特定文件夹,以便在其他人打开文件夹时或打开所述文件夹下的文件时。 此时我可以看到用户打开并修改任何文件的时间,但如果他们只是打开文件来查看它,即使我添加LastAccessed也不会抛出事件。 任何信息或帮助将不胜感激。 文件夹名称是C:\ Junk C#4.0中的代码: [PermissionSet(SecurityAction.Demand, Name = “FullTrust”)] public static void Run() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = @”C:\”; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Filter = “junk”; // Add event handlers. watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new […]

FileSystemWatcher用于监视UNC路径

关于这个话题不乏问题,但我仍然遇到麻烦。 这是我的情况。 我有一个服务,我需要观看配置文件中指定的路径。 当我使用本地驱动器时,它工作得很好。 但是,当我将其更改为类似\\server2\secondary\temp\watch_folder的内容时,服务无法启动。 日志中的错误是 目录名称\\ server2 \ secondary \ temp \ watch_folder无效。 如果我将其直接复制到Windows资源管理器中,该文件夹打开正常 如果我将我的代码粘贴到旧的Winforms应用程序中,它可以正常工作。 我已经尝试了所有“登录身份”帐户。 我将其设置为使用管理员帐户,但仍然没有骰子。 这是我的代码: _watcher = new FileSystemWatcher(); _watcher.Path = ConfigurationManager.AppSettings[“WatchFolder”]; _watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName; _watcher.Filter = “*.txt”; _watcher.Created += new FileSystemEventHandler(OnCreated); _watcher.Error += new ErrorEventHandler(OnError); _watcher.EnableRaisingEvents = true; 有任何想法吗? 我很茫然,此时我觉得我已经盯着它看了太久。 我真诚地感谢任何帮助。 谢谢,尼克 编辑这是例外: 服务无法启动。 System.ArgumentException:目录名\ server2 \ Secondary […]

使用FileSystemWatcher检测移动的文件

我意识到FileSystemWatcher不提供Move事件,而是为同一个文件生成单独的Delete和Create事件。 (FilesystemWatcher正在观察源文件夹和目标文件夹)。 但是,我们如何区分真正的文件移动和一些文件的随机创建,这些文件恰好与最近删除的文件同名? FileSystemEventArgs类的某种属性,例如“AssociatedDeleteFile”,如果它是移动的结果,则分配已删除的文件路径,否则为NULL,这将是很好的。 但当然这不存在。 我也理解FileSystemWatcher在基本的文件系统级别运行,因此“移动”的概念可能仅对更高级别的应用程序有意义。 但如果是这种情况,人们会建议在我的应用程序中使用什么样的算法来处理这种情况? 根据反馈更新: FileSystemWatcher类似乎看到将文件移动为2个不同的事件,删除原始文件,然后在新位置创建。 遗憾的是,这些事件之间没有提供“链接”,因此如何区分文件移动和普通删除或创建并不明显。 在操作系统级别,移动是专门处理的,您可以几乎立即移动说1GB文件。 一些答案建议在文件上使用哈希来可靠地在事件之间识别它们,我将合理地采用这种方法。 但如果有人知道如何更简单地发现一个动作,请留下答案。