唉,今天是愚蠢问题的日子,我是个白痴.
我有一个应用程序,它创建一个zip文件,其中包含某个目录中的一些JPEG.我使用此代码以便:
using (var outStream = new FileStream("Out2.zip", FileMode.Create))
{
using (var zipStream = new ZipOutputStream(outStream))
{
foreach (string pathname in pathnames)
{
byte[] buffer = File.ReadAllBytes(pathname);
ZipEntry entry = new ZipEntry(Path.GetFileName(pathname));
entry.DateTime = now;
zipStream.PutNextEntry(entry);
zipStream.Write(buffer, 0, buffer.Length);
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都在Windows下运行良好,当我打开文件,例如使用WinRAR,文件被提取.但是当我尝试在Mac OS X上解压缩我的存档时,它只会创建一个.cpgz文件.相当无用.
.zip在Windows和Mac OS X上提取在Windows上使用相同文件手动创建的普通文件,没有任何问题.
我在互联网上找到了上面的代码,所以我不确定整件事情是否正确.我想知道是否需要使用zipStream.Write()才能直接写入流?