【发布时间】:2016-10-29 09:13:05
【问题描述】:
根据答案here我想将多个文件流写入一个流,如下所示:
为每个流的长度编号保留4个字节 每个流内容写在它的长度数字之后(4字节之后) 最后流将是这样的
流 = File1 len + File1 stream content + File2 len + File2 stream content + ....
示例代码:
result = new ExportResult_C()
{
PackedStudy = packed.ToArray() ,
Stream = new MemoryStream()
};
string[] zipFiles = Directory.GetFiles(zipRoot);
foreach (string fileN in zipFiles)
{
MemoryStream outFile = new MemoryStream(File.ReadAllBytes(fileN));
MemoryStream len = new MemoryStream(4);
//initiate outFile len to 4 byte push it to main stream
//Then push outFile stream to main stream
//Continue and do this for another file
}
//For test Save stream to file(s)
这是个好主意吗?真不知道这些 cmets 怎么可能是代码行。
提前致谢。
【问题讨论】:
-
将数据打包到单个流中没有错。如果 Steam 包含多种类型,您可能还想在字节计数之后/之前添加一个单字节消息类型。
-
感谢您的评论,并非所有文件都只有一种类型(zip),但是如何?