【发布时间】:2019-07-06 13:46:17
【问题描述】:
要在我的 Web 应用程序中发送批量电子邮件,我使用 filewatcher 来发送应用程序。
我计划用控制台应用程序而不是 Windows 服务或调度程序来编写文件观察器。
我已将可执行文件快捷方式复制到以下路径中。
%appdata%\Microsoft\Windows\开始菜单\程序
参考:https://superuser.com/questions/948088/how-to-add-exe-to-start-menu-in-windows-10
运行可执行文件后,文件观察器并不总是被观察。 搜索了一些网站,我发现我们需要添加代码
new System.Threading.AutoResetEvent(false).WaitOne();
这是添加可执行文件并查看文件夹的正确方法吗?
运行控制台应用程序(没有上述代码)后,文件不会一直被观看吗?
使用文件观察器的正确方法是什么?
FileSystemWatcher watcher = new FileSystemWatcher();
string filePath = ConfigurationManager.AppSettings["documentPath"];
watcher.Path = filePath;
watcher.EnableRaisingEvents = true;
watcher.NotifyFilter = NotifyFilters.FileName;
watcher.Filter = "*.*";
watcher.Created += new FileSystemEventHandler(OnChanged);
【问题讨论】:
-
你有没有让你的程序在开始观看后以
MAIN的方式等待? -
我在这里提出疑问,什么是正确的观看方法。是的,我已经在 main 方法中等待。
-
您的代码似乎是正确的,但您应该知道它只监视文件在
root中,不是文件在sub-folders中. -
谢谢。我将检查并添加该条件。这里我有两个问题。所以我需要添加代码 [new System.Threading.AutoResetEvent(false).WaitOne(); ] 总是被观看.. 我想知道为什么我们应该只看根文件夹而不是子文件夹?。
标签: c# file-watcher