无法将文本写入.txt文件

时间:2018-06-30 04:36:41

标签: 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;
   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.WriteAllText()的部分。我使用了其他方法,例如StreamWriter,但是没有将任何内容写入文本文档。现在的代码跳过了WriteAllText部分,并在File.ReadLines处创建了一个错误,这只是告诉我该序列不包含任何元素。这是什么问题我该如何解决?

1 个答案:

答案 0 :(得分:-1)

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

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();
}