FileSystemWatcher锁定文件夹

isp*_*iro 5 .net c# filesystemwatcher winforms

答案如下.我既不能删除这个问题,也不能接受我的答案.

我正在FileSystemWatcher听一个文件夹.当我尝试重命名这个文件夹(在Windows资源管理器中)时,我得到一个

无法完成操作,因为文件夹或其中的文件在另一个程序中打开

错误.

评论这些FileSystemWatcher电话可以解决这个问题.

我尝试用一​​个简单的程序重现错误,但没有成功,所以我不确定这里发生了什么.有没有人遇到过这样的事情FileSystemWatcher?如果是这样 - 可能是什么导致了它?

更多信息:

以下似乎足以导致错误:

FileSystemWatcher fsw = new FileSystemWatcher(path);
fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
fsw.EnableRaisingEvents = true;
Run Code Online (Sandbox Code Playgroud)

可以重命名该文件夹中的文件.和兄弟文件.我甚至试过把一个return;作为第一行fsw_Deleted.仍然没有奏效.由于没有关闭Visual Studio,并删除obj和bin,并再次运行.我甚至尝试不在VS中运行exe文件.仍然 - 没有锁定,如果它没有运行,如果它是锁定.

isp*_*iro 5

我发现了造成这种情况的原因。有第二个FileSystemWatcher-在第一个的子目录上-不允许重命名第一个。

(不过,我仍然感到惊讶。A FileSystemWatcher 应该是“不可见的”。)