文件系统监视程序不能与Subversion一起工作



我有一个应用程序,它使用FileSystemWatcher来监听某个文件夹中的创建和删除事件。当在Windows资源管理器中移动文件时,该应用程序运行得非常好。但问题是,它实际上是用于用户在Subversion客户端(Syncro svn)中移动文件时使用的,Subversion客户端有自己的资源管理器,用于用户的工作文件夹。但是,当文件从svn客户端中移动时,实际移动的文件都不会触发Created和Deleted事件。唯一被触发的是针对特定于svn的文件(.tmp、.svn-base等等)。

我首先想到的是,这可能是某种机制的svn客户端只有"虚拟"移动文件在第一,实际移动他们在以后的阶段(提交或什么),但事实上,如果我在做移动后在Windows资源管理器在svn客户端,文件实际上是在新的文件夹中。那么,为什么FileSystemWatcher不报告这些文件,而只报告特定于svn的文件呢?

发生是因为文件没有被正确移动。相反,当复制到目标目录时,移动的文件具有.tmp后缀。一旦复制过程完成,SyncroSvn就会尝试重命名文件。就是这样。

最新更新