c# - 拒绝访问 C# 中的文件

标签 c# io system unauthorizedaccessexcepti

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

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

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

最佳答案

用户配置文件内的某个位置,例如 AppData 或我的文档。

获取AppData的路径如下:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Environment.GetFolderPath 的文档位于此处:

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

关于c# - 拒绝访问 C# 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15616625/

相关文章:

c# - 在程序执行期间将只读数据库表保存在局部变量中

c# - 如何将 SQL 日期转换为可读格式

haskell - 我可以让 readProcess 去掉引号吗?

java - 如何获取控制台输出(例如在 eclipse 上)并将相同的输出写入/复制到文件?

c# - MVC 和绑定(bind)到复选框列表

c# - C# 中的 BufferManager 和 System.Buffers.ArrayPool 有什么区别

linux - 检测代码是否读取了指定的输入文件

java - 在 shutdown hook 期间关闭 I/O 流

Java 文件 I/O 问题

c - 如何在c中获取另一个进程的pid?