1

我有一个在 VS 2012 中创建的 Winfom 应用程序,只有一个调用下面代码的按钮。如果我以管理员模式(以管理员身份运行)运行应用程序,则可以创建文件夹。但是在非管理员模式下(在资源管理器中双击exe),它总是弹出标准的“访问路径'C:\ Program Files(x86)\ DirTest'被拒绝”错误。

我的疑问是,为什么在非管理员模式下运行应用程序时不写入 Win 7 虚拟商店,缺少什么?

`string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
        string appDir = Path.Combine(programFiles, "DirTest");

        if (Directory.Exists(appDir))
            MessageBox.Show(appDir + " does exists!!!");
        else
        {
            MessageBox.Show(appDir + " does NOT exists!!!");
            Directory.CreateDirectory(appDir);
        }`
4

1 回答 1

0

“Program Files”目录在 Vista-onwards 中受UAC 保护。可以在以下位置找到对此的一些讨论:为什么我不能在 Windows 7 上编辑“程序文件”文件?

因此它按设计工作,除非以管理员身份运行,否则您不能将 Program Files 作为外部程序使用。如果您打算始终以管理员身份运行,请将以下行添加到您的应用清单中:

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

这样你可以双击应用程序,它会提示 UAC 访问,并以管理员身份运行。

于 2015-02-13T17:29:35.857 回答