【问题标题】:Error when extracting from a dotnetzip created zip file - "Windows cannot complete the extraction."从 dotnetzip 创建的 zip 文件中提取时出错 - “Windows 无法完成提取。”
【发布时间】:2013-07-25 16:23:29
【问题描述】:

我正在使用dotnetzip 即时创建一个 zip 文件,以通过 mvc 作为流返回。

我可以添加已经是流的文件,即动态创建的文件。我还添加了从 base64 字符串创建的文件。

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

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

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

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

有什么想法吗?我在想也许我需要将内容类型添加到 base64 字符串或流中? Dotnetzip 好像没有指定内容类型的参数...

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

【问题讨论】:

    标签: c# stream dotnetzip


    【解决方案1】:

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

    【讨论】:

    • 谢谢,你是对的。从文件名中删除冒号解决了这个问题,我完全想多了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多