Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在保留换行符的同时将文本框文本写入文件_C#_Text_Streamwriter - Fatal编程技术网

C# 在保留换行符的同时将文本框文本写入文件

C# 在保留换行符的同时将文本框文本写入文件,c#,text,streamwriter,C#,Text,Streamwriter,我试过使用: StreamWriter.WriteLine() StreamWriter.Write() File.WriteAllText()文件 但是所有这些方法都将文本框文本写入文件,而不保留换行符和类似字符。我该怎么做呢 编辑: 我正在使用多行RichTextBox来完成此操作。也许这会有所帮助。来自StreamWriter类文档 string[] str = String.Split(...); // Write each directory name to a file. usi

我试过使用: StreamWriter.WriteLine() StreamWriter.Write() File.WriteAllText()文件

但是所有这些方法都将文本框文本写入文件,而不保留换行符和类似字符。我该怎么做呢

编辑:


我正在使用多行RichTextBox来完成此操作。

也许这会有所帮助。来自
StreamWriter
类文档

string[] str = String.Split(...);

// Write each directory name to a file. 
using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
{
    foreach (DirectoryInfo dir in cDirs)
    {
        sw.WriteLine(dir.Name);

    }
}
这样做的目的是从文本框中获取文本,然后在
\n
char之后将其拆分。结果将是一个字符串数组,每个元素包含一行

稍后编辑:

问题是回程车厢不见了。如果使用debugger查看代码,您将看到字符串的新行中只有
\n
,而不是
\r\n
。如果将这行代码放入函数中,将得到所需的结果:

string tbval = richTextBox1.Text;
tbval = tbval.Replace("\n", "\r\n");

对于这个问题,应该有其他的解决方案,看起来比这个更好,但是这个解决方案很快就会有效果。

要扩展tzortzik的答案,如果您使用StreamWriter并简单地访问RichTextBox的Lines属性,它将为您完成以下工作:

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        SaveFileDialog s = new SaveFileDialog();
        s.FileName = "new_doc.txt";
        s.Filter = "Text File | *.txt";
        if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            using (StreamWriter sw = new StreamWriter(s.FileName))
            {
                foreach (string line in richTextBox1.Lines)
                {
                    sw.WriteLine(line);
                }
            }
        }
    }

不保留换行是什么意思?@tzortzik写的文本都在一行上。一段代码会更好。我们应该看看你做了什么。@tzortzik我添加了我正在使用的代码。
    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        SaveFileDialog s = new SaveFileDialog();
        s.FileName = "new_doc.txt";
        s.Filter = "Text File | *.txt";
        if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            using (StreamWriter sw = new StreamWriter(s.FileName))
            {
                foreach (string line in richTextBox1.Lines)
                {
                    sw.WriteLine(line);
                }
            }
        }
    }