有没有办法阻止文件在.NET中移动?

时间:2009-08-17 21:24:48

标签: c# .net winapi

我正在动态加载程序集,需要防止通过文件移动或文件剪切和粘贴来移动加载的文件。

Windows确实可以防止删除已加载的程序集。但是,我仍然可以将文件移动到同一卷中的不同目录。

您知道有什么方法可以防止文件被移动吗?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以为不希望用户移动的文件夹设置权限。 您将需要使用System.Security.AccessControl来获取文件或文件夹访问控制。 msdn上的这个post可以帮助你使用它

答案 1 :(得分:0)

这可能不是最简单或最正确的方法,但首先想到的是我在大学时所做的Windows服务项目。

它基本上是一个运行的服务,它扫描了一个目录,并且只要文件被更改,它就会通知你。这可能是在该目录中捕获事件的某种方式,如果其中一个您知道不想移动的程序集只是通知用户并且不让它被移动?

也许这个链接会有所帮助,虽然我不知道被移动的文件会抛出哪个事件,我想“改变了”?

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6165137.html

希望这有帮助!

答案 2 :(得分:0)

你对zaladane答案的评论实际上是问题的核心:

  

[设置访问权限]不会阻止具有相同或更高权限的用户移动文件。

如果某人或某个进程拥有比您更高的访问权限,那么我认为您无法阻止他们被移动。如果用户需要该文件夹的权限来安装新程序集,那么他们将有权移动文件。