Ziparchive:如何从 ziparchive 关闭创建的条目
Ziparchive: How to close the created entry from ziparchive
我写了一个如下的方法来绑定多个 Memorystream 到 ziarchive。该代码适用于一个流,但如果我通过迭代添加多个流,那么它会在 for 循环的第二行显示以下错误。
System.IO.IOException: 'Entries cannot be created
while previously created entries are still open.'
我的代码,
using (var zip = new ZipArchive(outputStream, ZipArchiveMode.Create,
leaveOpen: false))
{
for (int i = 0; i < msList.Count; i++)
{
msList[i].Position = 0;
var createenter = zip.CreateEntry("123"+i+".jpg",
CompressionLevel.Optimal);
msList[i].CopyTo(createenter.Open());
}
}
您 可能 错过了 using
打开的 Stream
?
using (var zip = new ZipArchive(outputStream, ZipArchiveMode.Create, leaveOpen: false))
{
for (int i = 0; i < msList.Count; i++)
{
msList[i].Position = 0;
var createenter = zip.CreateEntry("123"+i+".jpg",
CompressionLevel.Optimal);
using (var s = createenter.Open())
{
msList[i].CopyTo(s);
}
}
}
我写了一个如下的方法来绑定多个 Memorystream 到 ziarchive。该代码适用于一个流,但如果我通过迭代添加多个流,那么它会在 for 循环的第二行显示以下错误。
System.IO.IOException: 'Entries cannot be created
while previously created entries are still open.'
我的代码,
using (var zip = new ZipArchive(outputStream, ZipArchiveMode.Create,
leaveOpen: false))
{
for (int i = 0; i < msList.Count; i++)
{
msList[i].Position = 0;
var createenter = zip.CreateEntry("123"+i+".jpg",
CompressionLevel.Optimal);
msList[i].CopyTo(createenter.Open());
}
}
您 可能 错过了 using
打开的 Stream
?
using (var zip = new ZipArchive(outputStream, ZipArchiveMode.Create, leaveOpen: false))
{
for (int i = 0; i < msList.Count; i++)
{
msList[i].Position = 0;
var createenter = zip.CreateEntry("123"+i+".jpg",
CompressionLevel.Optimal);
using (var s = createenter.Open())
{
msList[i].CopyTo(s);
}
}
}