4

我有以下代码:

using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
    income.CopyTo(fs);
}

income是我需要保存到磁盘的流,问题是我想忽略最后 8 个字节并保存之前的所有内容。收入流是只读的,只能转发,所以我无法预测它的大小,并且由于发送的文件很大,我不想将所有流加载到内存中。

任何帮助将不胜感激。

4

1 回答 1

1

也许(或者更确切地说可能)有一种更清洁的方式来做到这一点,但目前我想到的第一个想法是务实的:

using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
    income.CopyTo(fs);
    fs.SetLength(Math.Max(income.Length - 8, 0));
}

哪个集合是写入后的文件长度。

于 2016-08-01T04:23:31.743 回答