FileStream и StreamWriter - Как обрезать оставшуюся часть файла после записи?

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);
}
18
задан Nathan Ridley 19 March 2017 в 00:05
поделиться