我有以下代码:
using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
income.CopyTo(fs);
}
income
是我需要保存到磁盘的流,问题是我想忽略最后8个字节并在此之前保存所有内容。收入流是只读的,只是转发,所以我无法预测其大小,我不想因为发送大量文件而在内存中加载所有流。
任何帮助将不胜感激。
答案 0 :(得分:1)
也许(或者更确切地说可能)有一种更清洁的方式可以做到这一点,但在我想到的第一个想法是务实的时候是这样:
using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
income.CopyTo(fs);
fs.SetLength(Math.Max(income.Length - 8, 0));
}
在写入文件后设置文件长度。