在C#中发送文件可编程性

时间:2013-07-23 18:32:39

标签: c# .net windows filesystems sendfile

您将如何检测,阻止或仅仅参考您可以对Windows上的任何文件/文件夹执行的“发送文件”操作。当发送文件发生时到底发生了什么,并且在.NET中是否存在任何类型的内置可编程性,或者类似于移动的工作原理(它先被删除然后在新位置创建。)

我只是想知道在执行发送文件时是否有任何方法可以检测发送文件的发生时间或窗口对文件/文件夹执行的操作。

2 个答案:

答案 0 :(得分:0)

如果您在右键单击文件/文件夹时谈到“发送到”上下文菜单,那么这是shell扩展处理程序的结果。很确定现在有办法拦截这些: Is there a Click Handler for Shell Extension

关于注册/创建自己的犯罪者的MS文档如下:

http://msdn.microsoft.com/en-us/library/windows/desktop/cc144067%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/cc144110%28v=vs.85%29.aspx

我认为如果您选择“发送到”并选择一个文件夹/驱动器,那么它将执行标准移动或复制(取决于它是否是相同的驱动器)。正如Alan所提到的,您可以使用FileSystemWatcher来尝试监视特定的文件/目录,但要小心对于您正在观看的内容进行广泛讨论,因为FSW接收事件的速度有限制,这意味着如果您对此有很多关注错过活动。如果你绝对必须看到文件移动的另一个选择是挂钩变更日志,但这真的很难看。

答案 1 :(得分:-1)

如果您想阻止某人移动或复制文件,您必须更改其读取和/或修改权限以排除该用户。

有一个FileSystemWatcher class可以帮助您检测文件系统的更改。此外,File Class具有Move和其他文件操作的静态方法。您可以查看System.IO名称空间

移动文件时,通常不会重新创建和删除文件(如果它们位于同一设备上)。通常它的位置只是修改过。 (因此即使在大文件上也几乎立即发生)