我正在写一个文本文件,每次写作我想清除文本文件。
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
{
}
我该怎么做?我想从 DefaultProfile.txt 中删除所有以前的内容。
我实际上必须知道从文本文件中删除所有内容的方法或方法(只是一个名称)。
答案 0 :(得分:18)
你可以在现有文件中写一个空字符串:
File.WriteAllText(@"Default\DefaultProfile.txt", string.Empty);
或者将StreamWriter
构造函数中的第二个参数更改为false
,以替换文件内容,而不是将附加到文件中。
答案 1 :(得分:12)
您可以查看截断方法
FileInfo fi = new FileInfo(@"Default\DefaultProfile.txt");
using(TextWriter txtWriter = new StreamWriter(fi.Open(FileMode.Truncate)))
{
txtWriter.Write("Write your line or content here");
}
答案 2 :(得分: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(".");
}
答案 3 :(得分:1)
System.IO.File.Delete
或指定System.IO.FileStream
FileMode.Create
构造函数重载之一
答案 4 :(得分:1)
您可以使用FileMode.Truncate
。代码看起来像
FileStream fs = new
FileStream(filePath, FileMode.Truncate, FileAccess.Write )
{
fs.Close();
}
答案 5 :(得分:1)
只需将true
的构造函数中的第二个参数从false
更改为StreamWriter
。
using (StreamWriter sw = new StreamWriter(("Default//DefaultProfile.txt").ToString(), **false**))