Удалите весь предыдущий текст перед записью

Я пишу текстовый файл, и каждый раз, когда я пишу, я хочу очистить текстовый файл.

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 .

Я действительно должен знать метод или способ (просто имя может быть), чтобы удалить все содержимое из текстового файла.

7
Простым способом может быть получение данных, удаление файла и создание нового. Есть ли лучший способ?
добавлено автор Abdur Rahim, источник
Я думаю, что это проще [Решение] [1] [1]: stackoverflow.com/a/24933010/2374691
добавлено автор Ritwik, источник

5 ответы

Вы можете просто написать пустую строку в существующий файл:

File.WriteAllText(@"Default\DefaultProfile.txt", String.Empty);

Или измените второй параметр в конструкторе StreamWriter на false на замените содержимое файла вместо appending в файл ,

12
добавлено
Спасибо, Это сработало для меня.
добавлено автор Rohit Arora, источник

Вы можете посмотреть метод 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");
}
10
добавлено

Наиболее простой и эффективный метод заключается в использовании логического параметра конструктора StreamWriter. Когда он установлен в false, он перезаписывает файл текущей операцией. Например, мне пришлось сохранить вывод математической операции в текстовый файл. Каждый раз, когда я хотел ТОЛЬКО текущий ответ в текстовом файле. Итак, в первой операции StreamWriter я установил значение boolean в значение 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(".");
        }       
5
добавлено

System.IO.File.Delete, or one of the System.IO.FileStream constructor overloads specifying FileMode.Create

0
добавлено

Вы можете использовать FileMode.Truncate . Код будет выглядеть так:

FileStream fs = new 
FileStream(filePath, FileMode.Truncate, FileAccess.Write )
{  
  fs.Close();
}
0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot