使用非管理员用户写入windows目录(虚拟存储)

本文关键字:目录 windows 虚拟存储 管理员 用户 | 更新日期: 2023-09-27 17:59:06

我为从windows目录读取数据的遗留应用程序编写了一个接口。

所以我需要将数据写入windows目录。(Windows 8操作系统)

我正在使用下面的代码来获取windows文件夹路径来写入文件。

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "test.txt");

正如我在MSDN上读到的,若我们运行应用程序,作为普通用户,它会将数据写入虚拟存储窗口文件夹,但它似乎不起作用。我收到拒绝访问错误。

我的应用程序是用x86平台构建的。

我缺少的东西或Windows 8操作系统的任何限制。

请协助,非常感谢。

使用非管理员用户写入windows目录(虚拟存储)

我在提供的清单文件默认注释中找到了问题的答案。上面写着,

<!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the 
            requestedExecutionLevel node with one of the following.
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
            Specifying requestedExecutionLevel node will disable file and registry virtualization.
            If you want to utilize File and Registry Virtualization for backward 
            compatibility then delete the requestedExecutionLevel node.
        -->

因此,您需要添加清单文件,并从xml或清单集下的项目属性->应用程序->图标和清单->中删除requestedExecutionLevel节点

Create application without a manifest

它解决了我的问题。

谢谢,