2015-05-15 5 views
0

Я хочу удалить в файле .txt файл, но переписывание происходит некорректно. Строки с текстом заменяются, а иногда повторяются. Как очистить открытый .txt до его переписывания?Как очистить .txt перед записью на него?

FileStream fileStream = new FileStream(textBox3.Text,FileMode.OpenOrCreate, 
     FileAccess.ReadWrite, FileShare.None); 
     string line = null; 
     int line_number = 0; 
     int line_to_delete = 12; 

     using (StreamReader reader = new StreamReader(fileStream)) 
     { 
      using (StreamWriter writer = new StreamWriter(fileStream)) 
      { 
       while ((line = reader.ReadLine()) != null) 
       { 
        line_number++; 

        if (line_number == line_to_delete) 
         continue; 

        writer.WriteLine(line); 
       } 
      } 
     } 

Прежде чем использовать часть кода ниже, и все было в порядке, но я хотел бы прочитать и записать в тот же файл.

using (StreamReader reader = new StreamReader(@"C:\Users\user\Desktop\my.txt")) 
using (StreamWriter writer = new StreamWriter(@"C:\Users\user\Desktop\my2.txt")) 

ответ

1

Используйте FileMode.Truncate в своем конструкторе FileStream. Например:

FileStream fileStream = new FileStream(textBox3.Text, FileMode.Truncate, FileAccess.ReadWrite, FileShare.None); 
Смежные вопросы