文件中的System.UnauthorizedAccessException.Create c#

文件中的System.UnauthorizedAccessException.Create c#,c#,file,unauthorizedaccessexcepti,C#,File,Unauthorizedaccessexcepti,编辑:我注意到这在我刚做的时候并没有发生:File.writealText(@“C:\Users\(usr)\Documents\Test\Data\Test.txt”,“0”)没有Globals.dmp所以很明显,它一定是带有Path.Combine()的东西。我尝试了不同的构图形式,但结果相同。 我想在用Visual Studio制作的c#程序中创建一个文件夹和一个文本文件。我正在做的是在表单加载时检查文件是否存在,如果不存在,则创建文件我是这样做的: if(!File.Exists(Glo

编辑:我注意到这在我刚做的时候并没有发生:
File.writealText(@“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");
            }
public static string dmp = @"Test\Data\test.txt
globals.dmp
的组成如下:

public static string dmp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Constants.dmp);
Constants.dmp
是这样的:

if(!File.Exists(Globals.dmp))
            {
                File.Create(Globals.dmp);
                File.WriteAllText(Globals.dmp, "0");
            }
public static string dmp = @"Test\Data\test.txt

这应该可以工作,但当我尝试运行它时,Visual studio报告:
System.UnauthorizedAccessException:“对路径“C:\Users\(usr)\Documents\Test\Data\Test.txt”的访问被拒绝。”
失败的行是:
File.Create(Globals.dmp)

我尝试放置
File.SetAttributes(Globals.dmp,newfileinfo(Globals.dmp).Attributes | FileAttributes.Normal)
文件上方。创建
但同样的事情也会发生。非常感谢您的任何见解。

以管理员身份运行visual studio,看看它是否工作。

以管理员身份运行visual studio,看看它是否工作。

我通过调整
路径组合AndCanonicalize1()

我所做的是:

            public static string PathCombineAndCanonicalize1(string path1, string path2)
            { 
                string combined = Path.Combine(path1, path2);
                return combined;
            }
            public partial class ProgramDirectories
            {
                public static string directory = @"DillData\";
                public static string documentspath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                public static string pathforfiles = PathCombineAndCanonicalize1(documentspath, directory);
                public static string sps = PathCombineAndCanonicalize1(pathforfiles, Constants.sps);
            }
使用
Constants.sps=“text.txt”
然后我可以很容易地做到:

if (!Directory.Exists(ProgramDirectories.pathforfiles))
{
     Directory.CreateDirectory(ProgramDirectories.pathforfiles);
}

if(!File.Exists(ProgramDirectories.sps)
{
     File.WriteAllText(ProgramDirectories.sps, "0");
}

我通过调整
PathCombineAndCanonicalize1()

我所做的是:

            public static string PathCombineAndCanonicalize1(string path1, string path2)
            { 
                string combined = Path.Combine(path1, path2);
                return combined;
            }
            public partial class ProgramDirectories
            {
                public static string directory = @"DillData\";
                public static string documentspath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                public static string pathforfiles = PathCombineAndCanonicalize1(documentspath, directory);
                public static string sps = PathCombineAndCanonicalize1(pathforfiles, Constants.sps);
            }
使用
Constants.sps=“text.txt”
然后我可以很容易地做到:

if (!Directory.Exists(ProgramDirectories.pathforfiles))
{
     Directory.CreateDirectory(ProgramDirectories.pathforfiles);
}

if(!File.Exists(ProgramDirectories.sps)
{
     File.WriteAllText(ProgramDirectories.sps, "0");
}

你在用UWP吗?@ekke我在用visual studio和最新的.net和WindowsForm你在用UWP吗?@ekke我在用visual studio和最新的.net和windowsformI,我也试着用同样的结果运行生成的程序。看看这个文档:我用了,我从那里得到了
文件.SetAttribute
,但它不起作用,我还试着用同样的结果运行构建的程序