C#写入文件

本文关键字:文件 | 更新日期: 2023-09-27 18:26:32

我试图用C#写入一个txt文件,但我无法工作。我搜索了很多教程,但没有一个能真正帮助我解决问题。

首先,我的问题实际上是2。

1st:我使用的方法根本不起作用!

第二:根据我的应用程序的工作方式,OpenFileDialog在单击按钮之前不会初始化。因此,我定义的save_to_file()函数几乎没有错误(见下面的代码)

代码

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
   if (savetofile_checkbox.Checked) 
   {
      OpenFileDialog save_to_file = new OpenFileDialog();
      save_to_file.Filter = "txt files (*.txt)|*.txt";
      save_to_file.FilterIndex = 2;
      save_to_file.RestoreDirectory = true;
   }
}

这样做的目的是在单击复选框时选择一个文件。

这有点奇怪。当你调用函数时,它应该将文件写入文件,但save_to_file没有定义,通常这种方式不起作用,我不知道为什么。。

public void write_to_file(string value)
{
   Stream file;
   file_path = save_to_file.FileName;
   file_name = Path.GetFileName(file_path);
   if (save_to_file.ShowDialog() == DialogResult.OK)        
   {
      if ((file = save_to_file.OpenFile()) != null)
      {
         TextWriter tw = new StreamWriter(file_name.ToString());
         tw.WriteLine(value);
         console.AppendText(cur_time() + file_path + "'n");
         console.AppendText(cur_time() + file_name + "'n");
         tw.Close();
         file.Close();
      }
   }
}

有什么方法可以让这个代码正常工作吗?

C#写入文件

将save_to_file变量定义为本地变量

private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {
        if (savetofile_checkbox.Checked) {
            OpenFileDialog save_to_file = new OpenFileDialog();  //declaration
            save_to_file.Filter = "txt files (*.txt)|*.txt";
            save_to_file.FilterIndex = 2;
            save_to_file.RestoreDirectory = true;
        } //end of scope of save_to_file variable
    }

如果我理解正确的话,您的代码没有编译,因为在write_to_file方法中没有定义变量save_to_file。您可以做的是将save_to_file声明为一个字段;

private OpenFileDialog save_to_file;
private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {
        if (savetofile_checkbox.Checked) {
            save_to_file = new OpenFileDialog();  //declaration
            save_to_file.Filter = "txt files (*.txt)|*.txt";
            save_to_file.FilterIndex = 2;
            save_to_file.RestoreDirectory = true;
        } //end of scope of save_to_file variable
    }

谷歌中有很多示例代码可用于写入文本文件。为什么要使用Open dailog。。以下是的示例代码

            string path = @"C:'mytesttext.txt";
            string text2write = "Hello World!";
            System.IO.StreamWriter writer = new System.IO.StreamWriter(path);
            writer.Write(text2write);
            writer.Close();