我正在使用DotNetZip将多个MemoryStream添加到单个存档中。到目前为止,我的代码在我选择1或2个文件时起作用,但如果我添加更多文件则不起作用。我发现不同的是CRC32对于那些糟糕的存档都是00000000。这是存档大小的问题吗?任何帮助表示赞赏! 我在C#中的代码:
foreach(.....){
var zipEntryName=.....//Get the file name in string;
var UDocument = .....//Get a object
var UStream = UDocument .GetStream();
UStream.Seek(0, SeekOrigin.Begin);
ZipEntry entry = zipFile.AddEntry(zipEntryName,UStream );
}
var outputStream = new MemoryStream();
outputStream.Seek(0, SeekOrigin.Begin);
zipFile.Save(outputStream);
outputStream.Flush();
return outputStream;
答案 0 :(得分:0)
我认为这是因为内存泄漏。 你正在foreach循环中创建对象,如果循环迭代次数会出现问题。
此处问题出现在您的代码中:
var UDocument = .....//Get a object
单例是一个可以实例化一次的类,只能实例化一次。 使用单身类如下:
public static SingletonSample InstanceCreation()
{
private static object lockingObject = new object();
if(singletonObject == null)
{
lock (lockingObject)
{
singletonObject = new SingletonSample();
}
}
return singletonObject;
}