如果文件已经存在,如何覆盖它?

How do I overwrite a file if it already exists?

我正在使用 fastColoredTextbox 制作一个文本编辑器。我有一个按钮,可以让您将文本保存到您的电脑上。问题是当用户试图将文件保存为已经存在的文件而不是覆盖文件时它会抛出异常。

这是我的代码。

SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt|*.txt|All files|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    using (Stream s = File.Open(saveFileDialog1.FileName, FileMode.CreateNew))
    using (StreamWriter sw = new StreamWriter(s))
    {
        sw.Write(fastColoredTextBox1.Text);
    }
}

如果文件已经存在,我该如何让它覆盖它?

也许这对你有帮助:

sw = new StreamWriter(path, true);
sw.WriteLine(line);

https://docs.microsoft.com/es-es/dotnet/api/system.io.streamwriter.-ctor?view=net-6.0#system-io-streamwriter-ctor(system-string-system-boolean)

我稍微更改了我的代码并最终使用了这个,它以某种方式让它工作。

SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt|*.txt|All files|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    Stream s = saveFileDialog1.OpenFile();
    StreamWriter sw = new StreamWriter(s);
    sw.Write(fastColoredTextBox1.Text);
    sw.Close();
}