从dotnetzip创建的zip文件中提取时出错 - “Windows无法完成提取”。

时间:2013-07-25 16:23:30

标签: c# stream dotnetzip

我使用dotnetzip动态创建一个zip文件,通过mvc作为流返回。

我能够添加已经是流的文件,即即时创建的文件。我还添加了从base64字符串创建的文件。

创建和下载zip文件很好,当我使用Windows资源管理器(Windows 7或8)打开zip文件时,我可以按预期看到所有条目。打开从内存流创建的文件打开没有问题,但是当我尝试打开从base64字符串创建的文件时,Windows资源管理器返回错误

  

Windows无法完成提取。目标文件可以   不被创造。

如果我尝试将文件从Windows资源管理器中的zip文件拖到另一个文件夹,我会收到错误:

enter image description here

如果我打开相同的zip文件或使用WinRAR提取并打开任何条目我都不会有任何问题。

有什么想法吗?我想我可能需要在base64字符串或流中添加内容类型吗? Dotnetzip似乎没有指定内容类型的参数...

我确保zip文件或其中的任何条目都没有加密

1 个答案:

答案 0 :(得分:4)

您似乎正在尝试提取并保存文件名中包含冒号的文件(屏幕截图中的名称"附件2 - 25-07-2013 15:27:04。 .PNG&#34)。那不行。您需要确保zip文件中的文件名不包含invalid file name characters