【问题标题】:Clearing content of text file using C#使用 C# 清除文本文件的内容
【发布时间】:2011-02-11 07:59:32
【问题描述】:

如何使用 C# 清除文本文件的内容?

【问题讨论】:

  • 如果文件不存在,你要FileNotFoundException吗?
  • var fileStream = File.Open("path", FileMode.Open); fileStream.SetLength(0);

标签: c# .net text file


【解决方案1】:
File.WriteAllText(path, String.Empty);

或者,

File.Create(path).Close();

【讨论】:

  • 哇,比我的还短! +1
  • 比你的“短”是什么意思?
  • @F4z:字符少得多。
【解决方案2】:

只需打开带有FileMode.Truncate 标志的文件,然后将其关闭:

using (var fs = new FileStream(@"C:\path\to\file", FileMode.Truncate))
{
}

【讨论】:

    【解决方案3】:
     using (FileStream fs = File.Create(path))
     {
    
     }
    

    将创建或覆盖文件。

    【讨论】:

    • 由于块中没有代码,using 语句与.Close() 相比没有优势。
    • 我假设他会处理文件。
    【解决方案4】:

    另一个简短的版本:

    System.IO.File.WriteAllBytes(path, new byte[0]);
    

    【讨论】:

      【解决方案5】:

      您可以像在文件中写入内容一样清除文件的内容,但将文本替换为“”

      File.WriteAllText(@"FilePath", "");
      

      【讨论】:

        【解决方案6】:

        当 StreamWriter 中的 append 设置为 false 时,只需写入文件 string.Empty。我认为这对初学者来说最容易理解。

        private void ClearFile()
        {
            if (!File.Exists("TextFile.txt"))
                File.Create("TextFile.txt");
        
            TextWriter tw = new StreamWriter("TextFile.txt", false);
            tw.Write(string.Empty);
            tw.Close();
        }
        

        【讨论】:

          【解决方案7】:

          您可以始终使用流式写入器。它会删除旧数据并每次添加新数据。

          using (StreamWriter sw = new StreamWriter(filePath))
          {                            
              getNumberOfControls(frm1,sw);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-14
            • 2010-11-07
            • 1970-01-01
            • 2014-09-02
            • 1970-01-01
            • 1970-01-01
            • 2015-04-03
            • 1970-01-01
            相关资源
            最近更新 更多