【问题标题】:Denied Accessing files in C# [closed]拒绝访问 C# 中的文件 [关闭]
【发布时间】:2013-03-25 13:50:26
【问题描述】:

我在 C# XNA 中创建了一个游戏,使用简单的文件 IO 来处理保存游戏数据,但是当我打包我的游戏并让其他人运行它时,这会产生问题。经过几次测试,我发现游戏可以在管理员中运行,但是如果不这样做会抛出 UnauhorizedAccessExceptions(并且在没有被捕获时只是挂起无响应)。这对我来说确实很有意义,因为我记得在我尝试使用文件 IO 时看到了这个异常。

我可以简单地捕获异常而不做任何事情,让游戏本身响应...但保存功能不起作用,除非以管理员权限运行。

所以我的问题是,是否有一个我可以保存到的位置不会干扰用户,但无需管理员访问权限即可访问?这甚至是可访问位置的问题还是更多?有什么体面的方法可以解决这个问题吗?如果我需要提供代码或更多细节,请告诉我。

【问题讨论】:

  • 请参阅Saving Data to a Save Game File (MSDN),了解 XNA 的执行方式,它应该适用于 XNA 支持的所有设备。当前的答案适用于 PC(可能还有其他)。
  • 感谢链接,乔治,这看起来也很有帮助。
  • @NoonerPants 请不要忘记将答案标记为已接受。

标签: c# io system unauthorizedaccessexcepti


【解决方案1】:

用户配置文件中的某处,例如 AppData 或我的文档。

获取AppData的路径如下:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Environment.GetFolderPath 的文档在这里:

http://msdn.microsoft.com/en-gb/library/system.environment.getfolderpath.aspx

【讨论】:

    【解决方案2】:

    你想把文件保存在哪里?

    根据您要保存的内容,我会说保存到 ApplicationData 是一个不错的选择。

    【讨论】:

    • 很棒的建议,来自每个人。我一直在尝试保存到程序文件。从那以后,我将目录更改为 AppData 并有人为我进行了测试,现在一切正常。谢谢你帮我解决这个问题。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多