如何清除文本文件内容c#

use*_*649 4 c# streamwriter

我希望使用此方法明确文本文件

private void writeTextFile(string filePath, string text)
{
    if (!File.Exists(filePath))
    {
        File.Create(filePath).Close();

    }
    using (StreamWriter tw = new StreamWriter(filePath))
    {
        File.WriteAllText(filePath,"");
        tw.WriteLine(text);
        tw.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误

The process cannot access the file  because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)

但这不能在任何地方打开,

请帮我谢谢

Cod*_*man 13

那是因为你正在创建一个StreamWriter,然后使用File.WriteAllText.您的文件已被使用StreamWriter.

File.WriteAllText就是这样,将传递给它的整个字符串写入文件. StreamWriter如果你打算使用它是不必要的File.WriterAllText.

如果您不关心覆盖现有文件,可以执行以下操作:

private void writeTextFile(string filePath, string text)
{
    File.WriteAllText(filePath, text);
}
Run Code Online (Sandbox Code Playgroud)

如果你想使用StreamWriter(顺便File.WriteAllText使用,它只是隐藏它),并附加到文件,你可以这样做(从这个答案):

using(StreamWriter sw = File.AppendText(path))
{
    tw.WriteLine(text);
}
Run Code Online (Sandbox Code Playgroud)

  • 或者在那时只是完全删除方法并让调用者直接调用`File.WriteAllText`,因为这个方法什么都不做. (2认同)