我已经在独立的存储中使用Streamwriter生成了一个zip,名为temp.zip,并在流中返回其字节以进行提取。请找到以下代码
stream = LoadZipFromLocalFolder(filename);
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var zipStream = new ZipInputStream(stream))
{
ZipEntry entry;
//EOF in header occuring on below line
while ((entry = zipStream.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(entry.Name);
string fileName = Path.GetFileName(entry.Name);
if (!string.IsNullOrEmpty(fileName))
{
if (!isoStore.DirectoryExists(directoryName))
{
isoStore.CreateDirectory(directoryName);
}
string fileFullPath = Path.Combine(directoryName, fileName);
Debug.WriteLine(fileFullPath);
using (var streamWriter = new BinaryWriter(new IsolatedStorageFileStream(fileFullPath, FileMode.Create, FileAccess.Write, FileShare.Write, isoStore)))
{
var buffer = new byte[2048];
int size;
while ((size = zipStream.Read(buffer, 0, buffer.Length)) > 0)
{
streamWriter.Write(buffer, 0, size);
}
streamWriter.Close();
streamWriter.Dispose();
}
}
}
}
}
当我创建temp.zip时,它具有ReadWrite,Share权限,并且我尝试手动解压缩,然后将其正确地提取而不会引起任何错误,但是在代码中显示错误EOF在HEADER中。
请帮助..
谢谢
我仅使用以下简单代码就解决了EOF in header]:
Stream.Position =0;
希望对某些人有帮助。
谢谢。
我尝试了用户user2561128
的上述答案,但它没有为我解决问题。