繁体   English   中英

C#:filesystemwatcher类

[英]C# : filesystemwatcher class

我在filesystemwatcher类上有一个关于移动文件事件的问题,我想停止移动文件或在某个文件出现移动文件事件时对其进行编辑,是否可以在移动事件内部进行处理?

不,无法使用FileSystemWatcher类阻止某人移动或重命名文件。

如果您看,FileSystemWatcher类上的事件传递的事件参数都没有Cancel属性。 同样,该类简称为“观察者”的事实有点线索。

您可能会考虑使用访问控制列表来确保某人无法删除文件(因为移动实际上只是一个复制/删除)。 或者,您可以尝试在文件上打开FileStream以便将其锁定。

您不能通过事件处理程序直接“取消”该操作。 您将必须提供补偿操作,以编程方式“撤消”您要撤消的任何更改。

您只有在事实发生后才接收事件。 这仅仅是通知,而不是您必须批准的事件。 也可以从FileSystemEventArgs (例如,与KeyEventArgs相对 )类中缺少的Cancel或Handled属性中猜出来。

您可以根据收到的RenamedEventArgsOldFullPath属性检测到移动并尝试将文件移回。

但是,这可能会使您的用户或其他软件感到困惑。 并尽量不要陷入无限循环,在每次收到事件时都来回移动文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM