Docker中的FileSystemWatcher不会注意到对本地目录的更改

我的Docker容器中的程序使用FileSystemWatcher来监视本地文件夹。 我用:

docker run -v / c / Users / Support / Desktop / inbox:/ Users / Support / Desktop / inbox -v / c / Users / Support / Desktop / outbox:/ Users / Support / Desktop / outbox -it –name workbeanRun workbean

我使用Docker Exec在运行时查看容器。 它可以看到收件箱和发件箱目录以及其中的任何文件。 但是,当我将新文件放入收件箱时,FileSystemWatcher事件不会触发。 代码没有问题,因为如果我不使用docker容器,它运行良好。

还有什么我需要做的安装directores? 或者FileSystemWatcher甚至可能在一个容器内?

好的,按照要求,这个程序是:

using System; using System.IO; namespace workbean { class Program { FileSystemWatcher watcher = new FileSystemWatcher(); static string sourceDir = "/Users/Support/Desktop/inbox"; static string destDir = "/Users/Support/Desktop/outbox"; static void Main(string[] args) { Console.WriteLine("Testing..."); Program p = new Program(); while (true) { } } public Program() { watcher.Path = sourceDir; watcher.Filter = "*.*"; watcher.Created += new FileSystemEventHandler(OnCreated); watcher.EnableRaisingEvents = true; } static void OnCreated(object source, FileSystemEventArgs e) { string[] files = Directory.GetFiles(sourceDir); foreach (var item in files) { string destDir2 = destDir + "/" + Path.GetFileName(item); File.Move(item, destDir2); } } } } 

看来,这是正在发生的事情:

我的本地驱动器上的收件箱文件夹绑定到容器中的收件箱文件夹。 如果你添加文件到另一个,他们出现在另一个。

但是,FileSystemWatcher仅监视容器中的收件箱。 如果我将文件添加到容器中的收件箱,则FileSystemWatcher会触发一个事件。

但是,将文件添加到本地收件箱时,什么都不会发生,因为即使两个文件夹相互关联,FileSystemWatcher也不会监视该文件。