c# - 无法创建目录:System.UnauthorizedAccessException 错误
问题描述
我对在 C# 中使用文件和创建目录比较陌生,但我已经被困了一段时间。我收到以下错误:System.UnauthorizedAccessException:'访问路径'C:\ Program Files \ Skyroom'被拒绝。'
这是我的代码以防万一:
if (File.Exists(@"C:\Program Files\Skyroom\gamedata.txt"))
{
Console.WriteLine("Game loading. Please wait..");
Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Game loading. Please wait...");
Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Game loading. Please wait.");
Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Game loading. Please wait..");
Thread.Sleep(500);
Console.Clear();
Console.WriteLine("Game loading. Please wait...");
Thread.Sleep(500);
Console.Clear();
}
else
{
Directory.CreateDirectory(@"C:\Program Files\Skyroom");
File.Create(@"C:\Program Files\Skyroom\gamedata.txt");
Main();
}
谢谢你。任何需要的信息,请问。
解决方案
您收到该错误是因为您的应用程序未以管理员身份运行,并且正在尝试写入仅供管理员使用的 Program Files。
除非您正在编写安装程序,否则您的应用程序将永远不需要以管理员身份运行,以便它可以写入 Program Files。程序文件不适用于将运行时数据写入的应用程序。这是一个供管理员安装应用程序的安全位置。此过程可防止受信任的应用程序文件被恶意更改。
您不应将数据写入 ProgramFiles 目录。Windows 有多种用于写入数据的目录,例如 %TEMP%、%APPDATA% 和 %LOCALAPPDATA%。
推荐阅读
- spring - Spring Boot 中用于 Amazon Aurora Serverless 的数据 API
- emacs - 重映射邪恶模式写入
- swift - Xcode 对“绑定”的期望是什么
“占位符? - java - 从带有处理指令的 XML 文件中读取并写入另一个输出文件
- python - 如何将固定数字添加到文件名的整数部分?
- python - 如何将文本中的一行视为整数?
- android - Xamarin Forms Android - 将操作系统时间更改为较早日期后应用程序无法启动
- c++ - 有没有办法使用 C++ 在 linux 中获取视频设备的数量及其名称?
- python - boto3:StreamingBody [Errno 104] 对等方重置连接
- r - 按数字解析并将数字移动到R中的现有列中