【发布时间】:2013-03-17 07:39:39
【问题描述】:
我有两个 MemoryStream 实例。
如何将它们合并为一个实例?
嗯,现在我不能从一个 MemoryStream 复制到另一个。 这是一个方法:
public static Stream ZipFiles(IEnumerable<FileToZip> filesToZip) {
ZipStorer storer = null;
MemoryStream result = null;
try {
MemoryStream memory = new MemoryStream(1024);
storer = ZipStorer.Create(memory, GetDateTimeInRuFormat());
foreach (var currentFilePath in filesToZip) {
string fileName = Path.GetFileName(currentFilePath.FullPath);
storer.AddFile(ZipStorer.Compression.Deflate, currentFilePath.FullPath, fileName,
GetDateTimeInRuFormat());
}
result = new MemoryStream((int) storer.ZipFileStream.Length);
storer.ZipFileStream.CopyTo(result); //Does not work!
//result's length will be zero
}
catch (Exception) {
}
finally {
if (storer != null)
storer.Close();
}
return result;
}
【问题讨论】:
-
“合并”是什么意思?
-
这是含糊的。你想做什么?代码示例?
-
为什么这被否决了?这是非常直观的,-1 Robuust 和 -1 Jon。一个实例是你分配一个类的时候。有问题的对象是一个内存流(它是一个可查找的字节数组,就像内存中的一个文件)。将两个文件放在一个存档文件 (zip) 中是有意义的。将两个文件的位组合成一个看起来像一个的文件,然后能够将它们分开是很容易理解的。这些是你唯一的选择。 p.s.如果没有意义,请给这个人一点更新他们的答案。
标签: c# .net memorystream