【问题标题】:File creation fails in standard account (Vista)标准帐户 (Vista) 中的文件创建失败
【发布时间】:2010-10-31 06:58:16
【问题描述】:

我创建了 C# 应用程序,它在桌面上创建一个图像文件。它在 XP 和 Vista(管理员帐户)上运行良好,但无法在 Vista(标准帐户)的桌面上创建图像文件。

我是否必须在应用程序中包含清单文件才能正常工作? 如果我添加清单,它会在 XP 上正常运行吗?

对不起,如果这是一个蹩脚的问题。 提前致谢。

【问题讨论】:

  • 你能否分享代码和详细信息,说明它是如何失败的(异常消息等)?
  • 你用的是什么路径?

标签: c# file windows-vista windows-xp


【解决方案1】:

仅当尝试在 C:\Program Files 等系统目录中执行文件 IO 时才需要我的建议...

【讨论】:

    【解决方案2】:

    在您的应用程序目录中授予用户获取所有权和删除的权限。这涉及单击“安全”选项卡中的“高级”按钮。应用更改后,文件 IO 应该可以正常工作。

    【讨论】:

      【解决方案3】:

      我敢打赌这是访问权限。出现并请求许可的 Vista UAC 可能是一件好事。

      查看此链接了解如何获取 UAC 访问权限:

      Demand UAC elevation for an application

      【讨论】:

        【解决方案4】:

        确保您使用 System.Environment.SpecialFolder 类来告诉您用户桌面的真正位置。

        【讨论】:

          【解决方案5】:

          要回答您的第一个问题,在没有关于生成的代码和错误的任何详细信息的情况下,听起来标准帐户没有在桌面上创建文件的权限。

          使用标准帐户登录时可以手动操作吗?我没有安装 Vista,所以我无法检查自己。

          【讨论】:

          • 我可以在桌面上手动创建文件,但是通过程序创建文件失败。
          • 您需要向我们提供更多关于哪条线路失败以及如何失败的信息
          【解决方案6】:

          您要在哪个文件夹中创建文件?共享桌面文件夹还是用户的桌面文件夹?普通用户无法创建共享桌面文件。

          您应该写入由以下注册表值指定的文件夹:

          HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
          

          【讨论】:

            【解决方案7】:

            在桌面上创建文件应该没有问题。但是,该桌面现在可能具有不同的位置。您实际上是在尝试在 Vista 桌面上创建文件,还是意外地仍在尝试使用 XP 中的路径创建文件?你能把你的代码提炼成一个 20 行的例子吗?

            【讨论】:

              猜你喜欢
              • 2010-10-19
              • 2022-12-03
              • 1970-01-01
              • 2017-03-20
              • 2016-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多