Detect if there are new files created in a folder using FileWatcher
我想知道在给定目录中是否创建了新文件。我有下一个代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
private static void CreateWatcher ()
{
//Create a new FileSystemWatcher.
FileSystemWatcher watcher = new FileSystemWatcher ();
//Set the filter to all files. watcher.Filter ="*.*";
//Subscribe to the Created event. watcher.Created += new FileSystemEventHandler(watcher_FileCreated);
//Set the path watcher.Path = path;
//Enable the FileSystemWatcher events. watcher.EnableRaisingEvents = true; }
private static void watcher_FileCreated(object sender, FileSystemEventArgs e) { Console.WriteLine("Nuevo archivo creado ->" + e.Name); }
public static void Main(string[] args) { CreateWatcher(); CreateFiles(); Console.Read(); } |
在 CreatedFiles() 函数中,我在路径上创建了三个新文件(一个 zip 和两个 txt)。它检测到两个 txt 文件,但与 zip 文件不同。我该如何解决?
- 我的猜测是,由于 watcher 在方法中是本地的,因此它会被 GC 处理并停止引发事件。 Console.Read 也可能会阻止 Console.WriteLine。
-
它在我身边工作得很好。您可以分享 CreateFiles 代码吗?也许您正在使用线程或没有写下文件的东西?
-
现在它显示 tmp 文件。为什么这样做?
-
我已经尝试过您的代码(从外部程序创建文件),它与通用文件和 zip 文件一样可以正常工作,因此它可能是由于在项目中创建文件的代码导致 Watcher 存在一些问题.
-
你用什么来创建 zip 文件? Tmp 文件通常由 zipper 应用程序在创建 zip 之前创建,如果您的 zip 应用程序创建文件然后重命名它,则不会对 zip 文件执行创建文件,因此您不会收到消息。
-
我正在使用库 DoNetZip 来创建它
-
显示创建功能以及通知过滤器!
-
使用 FileSystemWatcher 监视目录的可能重复项
建议你看看这里。之前已解决此问题。
使用 FileSystemWatcher 监控目录
- 永远不要只放链接…给出详细的答案,记住链接可能会损坏..
-
如果之前已解决,则应将问题标记为重复,而不是收到此类答案。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269611.html