如何更改文件权限以阻止Vista写入VirtualStore目录中的文件?

时间:2009-01-29 20:48:38

标签: c# windows-vista file-permissions virtualstore

当我的程序首次安装时,它会在用户的AppData目录中放置一个文件,然后程序会定期写入该文件。问题是在Vista中,没有对用户的AppData目录中的文件进行写入,而是将它们写入“VirtualStore / ProgramData”目录中的该文件的副本。用户的AppData目录中的原始文件永远不会被更改,似乎程序运行时它只能访问VirtualStore目录中的文件。

是否有一种方法可以从C#应用程序内部更改该文件的权限,以便我的程序将写入AppData目录中的原始程序,而不是VirtualStore目录中的原始程序?

谢谢,

杰夫

1 个答案:

答案 0 :(得分:1)

http://msdn.microsoft.com/en-us/library/bb756973.aspx处的UAC文档可以帮助您解决此问题。

听起来我需要添加一个应用程序清单。

当您的应用程序包含指定了“requestedExecutionLevel”值的应用程序清单时,将关闭Vista对注册表和文件系统的虚拟化。

请查看http://msdn.microsoft.com/en-us/library/bb756929.aspx了解详细信息。

如果您之前未在非管理员条件下测试过您的应用程序,您可能会发现在关闭Vista的虚拟化后需要进行一些代码更改。