C# 触发弹出窗口的文件夹监视器
我正在尝试创建某种服务来监视特定目录的更改。当发生特定更改时,将出现一个WPF弹出窗口。此服务还应可通过Windows(Windows 10,Visual Studio 2015)中右下角的任务重试来访问 这样做的最佳方法是什么?我已经编写了一个Windows服务,它使用了C# 触发弹出窗口的文件夹监视器,c#,visual-studio,service,monitoring,filesystemwatcher,C#,Visual Studio,Service,Monitoring,Filesystemwatcher,我正在尝试创建某种服务来监视特定目录的更改。当发生特定更改时,将出现一个WPF弹出窗口。此服务还应可通过Windows(Windows 10,Visual Studio 2015)中右下角的任务重试来访问 这样做的最佳方法是什么?我已经编写了一个Windows服务,它使用了FileSystemWatcher。但我无法从那里触发任何弹出通知或GUI。有很多方法,但都不是推荐的做法 实现我的目标的好的替代方法是什么 谢谢大家! 如果您仔细阅读,您将了解到为什么在同一个项目中通常不可能有服务和GUI应
FileSystemWatcher
。但我无法从那里触发任何弹出通知或GUI。有很多方法,但都不是推荐的做法
实现我的目标的好的替代方法是什么
谢谢大家! 如果您仔细阅读,您将了解到为什么在同一个项目中通常不可能有服务和GUI应用程序
正如中所指出的,如果您想通过使用托盘图标应用程序来解决此问题,您可以遵循
您可以根据需要设置路径和过滤器属性,研究如何使用System.IO.FileSystemWatcher fileWatcherService
fileWatcherService.Path = 'your_folder_path';
fileWatcherService.Filter = "*.*"; //watching all files
fileWatcherService.EnableRaisingEvents = true; //Enable file watcher
处理表单时,请记住禁用事件引发属性:
fileWatcherService.EnableRaisingEvents = false;
当您需要关联任何操作时,请将事件处理程序附加到事件,如:
public event FileSystemEventHandler Deleted;
public event FileSystemEventHandler Created;
public event FileSystemEventHandler Changed;
public event RenamedEventHandler Renamed;
public event ErrorEventHandler Error;
比如说,
fileWatcherService.Created += new System.IO.FileSystemEventHandler(this.fileWatcherService_OnFileCreated);
而
private void fileWatcherService_OnFileCreated(object sender, FileSystemEventArgs e)
{
//Put your popup action over here
}
通过使用可重用的通用方法调用popup,您可以对更改、删除和重命名的事件执行相同的操作。服务不能有GUI。您的代码是什么?你试过什么?正如所指出的,服务没有GUI,所以您需要考虑其他的东西。明确规定你不想做什么,以及到目前为止你做了什么。你对插座有多满意?您可以让您的服务在本地端口上打开一个套接字,您的客户端可以通过一个简单的协议注册和接收广播。因此,正如我所说的,我意识到Windows服务不能调用GUI,至少不能以推荐的方式调用。我还明确指出,我需要监视一个目录,当目录中的任何内容发生更改时,会抛出一个弹出通知。我还提到,我已经编写了一个利用FileSystemWatcher的windows服务。但是Hitesh用一篇文章的链接回答了我的问题,这篇文章描述了如何使用任务托盘应用程序。谢谢。我已经清楚地提到,我编写了一个充分利用FileSystemWatcher的服务。我对此非常熟悉。然而,您链接到关于任务托盘应用程序的文章是一个很大的帮助。你的另一个链接也非常有趣。非常感谢。