【问题标题】:Access error in Windows 7Windows 7 中的访问错误
【发布时间】:2010-05-14 09:07:31
【问题描述】:

我正在开发一个 Windows 应用程序,在该应用程序中我在运行时创建一个文件夹并将一些 xml 文件保存在该文件夹中...... 在 Windows XP 中一切正常,但是当我在 Widows 7 / Vista 中运行它时,我收到错误消息,提示访问路径被拒绝.. 我在 C:\Programfiles\MyApplication\

中创建文件夹

请帮我解决这个问题

【问题讨论】:

标签: c#


【解决方案1】:

Windows 7(和 Vista)对 Program Files 目录设置访问权限,并且不允许普通用户写入这些目录。

您的程序必须由管理员运行,或者您可以更改应用程序文件条目的权限,或将数据保存在其他位置。

【讨论】:

  • 我已经部署了一个 VSTO Excel 加载项,那么如何在管理员中运行它或如何更改我的应用程序文件条目的权限
  • 您如何部署加载项,您使用的是 Windows 安装程序文件吗?
  • 在 dotnet .msi 文件中创建的设置文件
【解决方案2】:

使用 .NET 为此类数据提供的特殊文件夹可能是一个想法。这应该有效:

Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\AppName\test folder");

然后将您的数据写入此文件夹。

【讨论】:

  • 但我想将其写入安装路径,即 C:\Programfiles\myApp\myFolder
  • 必须是这个位置有什么特别的原因吗?
【解决方案3】:
  • 您的应用程序是否在管理员上下文中运行?

  • Visual Studio 是否以管理员身份运行?

要执行此操作,请右键单击 VS 并选择以管理员身份运行,要永久执行此操作,请右键单击属性并选择以管理员身份运行复选框。

当你通过 VS 调试你的应用程序时,它需要权限,否则应用程序自己需要。

它可能只是一个基于权限的东西......

【讨论】:

  • 我在 Windows XP 中使用 VS,在 Win 7 中部署 exe
【解决方案4】:

您可以为可执行文件启用 XP 模式。

【讨论】:

  • 我怎样才能为 VSTO Excel 加载项做到这一点
  • 我只是补充说,在 Windows 7 中,有一个选项可以在 XP 模式下运行,而不仅仅是以管理员身份运行。我建议不要在C:\Programfiles\MyApplication` but in %APPDATA%\MyApplication` 中创建文件夹
  • 如果我使用 APPDATA 它会在 Win 7 和 Win XP 中在哪里创建文件夹??
  • @Sathish:打开 cmd 并输入 echo %APPDATA%
【解决方案5】:

请在下面找到设置

link text

【讨论】:

    【解决方案6】:

    长期以来,Windows XP 开发人员应该考虑阅读 UAC,

    http://en.wikipedia.org/wiki/User_Account_Control

    它最初是在 Windows Vista 中添加的,现在已成为 Windows 家族的核心部分。

    【讨论】:

      【解决方案7】:

      您不应该写入程序文件。这是一个坏习惯,只有安装人员才能写在那里。你“想要”的东西对整个生态系统都是有害的,而且完全是错误的。不要这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 2012-02-24
        相关资源
        最近更新 更多