今天真是遇到了一些愚蠢的问题,我也变成了一个傻瓜。
我的应用程序会创建一个Zip文件,其中包含某个目录中的一些JPEG文件。我使用以下代码来:
- 读取目录中的所有文件
- 将每个文件附加到一个ZIP文件中
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);
}
}
}
在Windows下一切都很顺利,当我使用WinRAR打开文件时,文件被解压。但是一旦我尝试在Mac OS X上解压我的存档,它只创建了一个.cpgz
文件。毫无用处。
在Windows上手动创建的普通.zip
文件可以在Windows和Mac OS X上轻松解压缩相同的文件。
我在互联网上找到了上述代码,所以我不确定整个过程是否正确。我想知道是否需要使用zipStream.Write()
来直接向流中写入?