在写之前删除所有以前的文本

Abd*_*him 12 stream streamwriter c#-4.0

我正在写一个文本文件,每次我写,我想清除文本文件.

try
{
    string fileName = "Profile//" + comboboxSelectProfile.SelectedItem.ToString() + ".txt";
    using (StreamWriter sw = new StreamWriter(("Default//DefaultProfile.txt").ToString(), true))
    {
        sw.WriteLine(fileName);
        MessageBox.Show("Default is set!");
    }
    DefaultFileName = "Default//DefaultProfile.txt";
}
catch 
{ 
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我想从DefaultProfile.txt中删除所有以前的内容.

我实际上必须知道从文本文件中删除所有内容的方法或方法(只是一个名称).

Cᴏʀ*_*ᴏʀʏ 19

你可以在现有文件中写一个空字符串:

File.WriteAllText(@"Default\DefaultProfile.txt", string.Empty);
Run Code Online (Sandbox Code Playgroud)

或者更改StreamWriter构造函数中的第二个参数false替换文件内容而不是附加到文件.


Met*_*Man 12

您可以查看Truncate方法

FileInfo fi = new FileInfo(@"Default\DefaultProfile.txt");
using(TextWriter txtWriter = new StreamWriter(fi.Open(FileMode.Truncate)))
{
    txtWriter.Write("Write your line or content here");
}
Run Code Online (Sandbox Code Playgroud)


小智 6

最简单有效的技术是使用StreamWriter构造函数的布尔参数.当它设置为false时,它将使用当前操作覆盖该文件.例如,我必须将数学运算的输出保存到文本文件中.每次我只需要文本文件中的当前答案.因此,在第一个StreamWriter操作中,我将布尔值设置为false,后续调用将bool val设置为true.结果是,对于每个新操作,将覆盖先前的答案,并且仅显示新答案.

        int div = num1 / denominator;
        int mod = num1 % denominator;
        Console.Write(div);
        using (StreamWriter writer = new StreamWriter(FILE_NAME, false ))
        {
            writer.Write(div);
        }
        Console.Write(".");
        using (StreamWriter writer = new StreamWriter(FILE_NAME, true))
        {
            writer.Write(".");
        }       
Run Code Online (Sandbox Code Playgroud)