【问题标题】:Windows 7 doesn't allow me edit files in Common Application Data folderWindows 7 不允许我编辑 Common Application Data 文件夹中的文件
【发布时间】:2010-10-15 19:50:57
【问题描述】:

我想在 Windows 7 下的通用应用程序数据中为我的软件存储一些文件并对其进行编辑。

我不知道为什么 Windows 7 不允许我的软件更改文件 除非我以管理员身份运行它们。

我可以在哪里存储我的文件,这样就不需要管理员权限?

【问题讨论】:

  • @Henk : CommonApplicationData

标签: c# windows uac


【解决方案1】:

您应该将应用程序数据存储在 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 下的子文件夹中。请注意,此文件夹是特定于用户的。

非管理员用户无权写入CommonApplicationData 文件夹,因为该文件夹不属于特定用户。

请注意,您还可以使用设置类来存储您的设置。为此,将新项目添加到您的项目中,选择“设置文件”。这适用于字符串和数字等基本设置。

【讨论】:

    【解决方案2】:

    某些文件夹从 Windows 7 开始受到限制,除非您正在安装、卸载或修补,否则不应触摸这些文件夹。请参阅my answer that you accepted from earlier today 是完全相同的情况。

    如果您有多个应用程序需要编辑相同的文件,则应将它们存储在

    Environment.GetFolderPath( Environment.SpecialFolder.CommonApplicationData)
    

    System.Environment.SpecialFolder.CommonProgramFiles(我认为您正在尝试写入的文件夹)是只读的,除非您被提升。

    从 MSDN 中阅读 this article,它解释了您应该在哪里保存数据以及如何正确使用各种文件夹。我的解决方案是他列表中的第一个,总结一下:

    您需要在 CommonApplicationData 文件夹中安装程序时创建一个文件夹,然后设置该新文件夹的权限,以便它具有来自用户组的写入权限。

    【讨论】:

    • 我用过这个,我的文件保存在这个文件夹里,但是windows不允许修改!
    • 嗯,我刚刚检查了我对 C:\ProgramData 的权限,它是只读的...嗯
    • 不,我用过 CommonApplicationData ,我可以在哪里存储我的文件,所以我不需要管理员权限。
    • 如果您的目标是在一台机器上的所有用户之间共享设置,这是一个很好的解决方案。如果没有,请尝试我的建议之一。关闭 UAC 不是解决此问题的好方法。
    【解决方案3】:

    由于用户访问控制,您需要使用提升来修改这些文件。查看这篇 MSDN 文章了解更多详情:MSDN article about UAC

    如果您不确定如何在 C# 中执行此操作,这里有一篇文章:Article about requesting elevation in C#

    【讨论】:

    • +0:请求提升只是为了保存应用程序设置是个坏主意。
    • 写通用应用数据不需要海拔...但应用程序应该在管理员帐户中运行......
    【解决方案4】:

    这是 Windows 7 中默认打开的安全选项,即 UAC(用户帐户控制)。您应该更改您的设计(在其他地方写)或从控制面板\用户帐户中关闭 UAC。

    【讨论】:

    • “你应该改变你的设计(写在别的地方)”.. 但是,在哪里?
    【解决方案5】:

    我也遇到过同样的问题,但是使用 Inno Setup Installer,我有一个名为“Permissions”的参数,我在其中设置了值“users-full”,以便在我的应用程序文件夹中创建一个文件到常见的应用程序数据中完全控制该文件的所有用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多