[英]C# : filesystemwatcher class
我在filesystemwatcher类上有一个关于移动文件事件的问题,我想停止移动文件或在某个文件出现移动文件事件时对其进行编辑,是否可以在移动事件内部进行处理?
不,无法使用FileSystemWatcher
类阻止某人移动或重命名文件。
如果您看,FileSystemWatcher类上的事件传递的事件参数都没有Cancel
属性。 同样,该类简称为“观察者”的事实有点线索。
您可能会考虑使用访问控制列表来确保某人无法删除文件(因为移动实际上只是一个复制/删除)。 或者,您可以尝试在文件上打开FileStream以便将其锁定。
您不能通过事件处理程序直接“取消”该操作。 您将必须提供补偿操作,以编程方式“撤消”您要撤消的任何更改。
您只有在事实发生后才接收事件。 这仅仅是通知,而不是您必须批准的事件。 也可以从FileSystemEventArgs (例如,与KeyEventArgs相对 )类中缺少的Cancel或Handled属性中猜出来。
您可以根据收到的RenamedEventArgs的OldFullPath
属性检测到移动并尝试将文件移回。
但是,这可能会使您的用户或其他软件感到困惑。 并尽量不要陷入无限循环,在每次收到事件时都来回移动文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.