C# 无法将文本写入.txt文件

C# 无法将文本写入.txt文件,c#,winforms,C#,Winforms,我有一个Windows窗体应用程序,它应该将其配置数据存储在一个名为config.txt的文件中。我有这段代码,它在初始化表单时运行。以下是函数: string folderPath = @‘C:\Users\Public\Periodic_Clock\’; string filePath = @‘C:\Users\Public\Periodic_Clock\config.txt’; public Form1() { InitializeComponent(); once = 0

我有一个Windows窗体应用程序,它应该将其配置数据存储在一个名为
config.txt
的文件中。我有这段代码,它在初始化表单时运行。以下是函数:

string folderPath = @‘C:\Users\Public\Periodic_Clock\’;
string filePath = @‘C:\Users\Public\Periodic_Clock\config.txt’;

public Form1()
{

   InitializeComponent();
   once = 0;
   if (!Directory.Exists(folderPath))
   {
      Directory.CreateDirectory(folderPath);
   }

   if (!File.Exists(filePath))
   {
      new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
      File.WriteAllText(filePath, "Alarm" + Environment.NewLine + "Alarm Ringing!" + Environment.NewLine + 1);
   }
   else
   {

   }
   notificationTitle = File.ReadLines(filePath).Skip(0).Take(1).First();
   notificationText = File.ReadLines(filePath).Skip(1).Take(1).First();
}
差不多,我有一个应用程序,当计时器关闭时发送通知。我想使用此配置文件存储通知的自定义标题、文本和通知类型。(以便用户可以自定义通知的外观)我的目的是将第一行作为通知标题,第二行作为文本,第三行作为0-3之间的数字,以存储通知的类型(信息、错误等)


我无法让程序在文本文件中写入任何内容。它创建了它,但似乎完全跳过了我使用
File.writealText()
的部分。我使用了其他方法,如
StreamWriter
,但没有向文本文档写入任何内容。代码现在跳过了
writealText
部分,并在
File.ReadLines
处创建了一个错误,它只是告诉我序列不包含任何元素。这里有什么问题?如何修复它?

最后,我得到了以下代码:

public Form1()
{
    InitializeComponent();
    once = 0;
    if (!Directory.Exists(folderPath))
    {
        Directory.CreateDirectory(folderPath);
    }
    try
    {
        FileStream config = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
        config.Close();
        StreamWriter writetext = new StreamWriter(filePath);
        writetext.Write("Alarm");
        writetext.WriteLine();
        writetext.Write("Alarm Ringing!");
        writetext.WriteLine();
        writetext.Write("1");                
        writetext.Close();

    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.Message, "Error!");
    }
    notificationTitle = File.ReadLines(filePath).Skip(0).Take(1).First();
    notificationText = File.ReadLines(filePath).Skip(1).Take(1).First();
}

删除FileStream构造。另外,这是实际代码还是代码中也有try/catch块?为什么要打开文件并读取所有行两次?您只是误解了file.writealText的用法,以及其他调用。阅读文档。我建议您使用File.writeallines和File.ReadAllLines,不要使用其他调用。如果使用FileStream,您应该使用“using(…”等等。您可以询问问题出在哪里,这样我就可以告诉您,您的
新FileStream
将打开文件进行写入,但是
writealText
也会尝试这样做。您不能同时进行两次写入。此外,您提到了一个错误,但没有提供详细信息。