var fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
using(var writer = new StreamWriter(fs))
writer.Write(....);
Если файл ранее содержал текст, а вновь написанный текст короче того, что уже было в файле, как мне убедиться, что устаревшее конечное содержимое в файл усечен?
Обратите внимание, что в этом случае нельзя открыть файл в режиме усечения. Когда я получаю объект FileStream
, файл уже открыт. Приведенный выше код предназначен только для иллюстрации свойств потока.
РЕДАКТИРОВАТЬ
Расширяя ответ ниже, решение:
var fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
using(var writer = new StreamWriter(fs))
{
writer.Write(....);
writer.Flush();
fs.SetLength(fs.Position);
}