如何在Application.StartUpPath中写入文件时传递System.UnauthorizedAccessException?

时间:2015-07-22 21:42:44

标签: c# visual-studio

当我写入我在Visual Studio中的Application.StartUpPath中创建的文件时,它给出了System.UnauthorizedAccessException错误。有没有办法允许访问它? c:\ Users \ Jesse \ Documents \ Visual Studio 2013 \ Projects \ WindowsFormsApplication2 \ WindowsFormsApplication2 \ Form1.cs:第112行是错误产生的直接路径。我已经尝试过File.SetAttributes。这是产生错误的区域:

public void writeAll()
    {
        var path = Application.StartupPath;
        try
        {
            if (!File.Exists(path))
            {
                File.CreateText(path);
            }

            using (StreamWriter Writer = new StreamWriter(path))
            {                                       
                foreach (TextBox textBox in tableLayoutPanel1.Controls.OfType<TextBox>())
                {
                    Writer.WriteLine(textBox.Text);
                }

                foreach (Label label in tableLayoutPanel1.Controls.OfType<Label>())
                {
                    Writer.WriteLine(label.Text);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }

非常感谢帮助!

2 个答案:

答案 0 :(得分:0)

Application.StartupPath是一个文件夹。

如果要在该文件夹中创建文件,则需要使用Path.Combine()添加文件名。

答案 1 :(得分:0)

Application.StartupPath只是运行应用程序的文件夹。使用当前代码,您尝试仅使用该文件夹创建文本文件。您需要为文本文件指定名称。尝试使用带有Application.StartupPath的Path.Combine()和文本文件的字符串。例如:

string fileName = "myFile.txt";
string fileLocation = Path.Combine(Application.StartupPath, fileName);
if(!File.Exists(fileLocation))
{ File.Create(fileLocation); }