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