【发布时间】:2021-04-25 07:22:17
【问题描述】:
编辑:我注意到当我这样做时不会发生这种情况:File.WriteAllText(@"C:\Users\(usr)\Documents\Test\Data\test.txt", "0"); 没有 Globals.dmp 所以显然它必须是 Path.Combine()
我想在用 Visual Studio 制作的 c# 程序中创建一个文件夹和一个文本文件。我正在做的是检查表单加载以查看文件是否存在,如果不存在,则创建文件。
我是这样做的:
if(!File.Exists(Globals.dmp))
{
File.Create(Globals.dmp);
File.WriteAllText(Globals.dmp, "0");
}
globals.dmp的组成如下:
public static string dmp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Constants.dmp);
而Constants.dmp是这样的:
public static string dmp = @"Test\Data\test.txt
这应该可以,但是当我尝试运行它时,Visual Studio 报告:System.UnauthorizedAccessException: 'Access to the path 'C:\Users\(usr)\Documents\Test\Data\test.txt' is denied.'失败的行是:File.Create(Globals.dmp);
我尝试将File.SetAttributes(Globals.dmp, new FileInfo(Globals.dmp).Attributes | FileAttributes.Normal); 放在File.Create 之上,但同样的事情发生了。非常感谢任何见解。
【问题讨论】:
-
你在使用 UWP 吗?
-
@ekke 我正在使用带有最新 .net 和 windowsform 的 Visual Studio
标签: c# file unauthorizedaccessexcepti