c# - 从 dotnetzip 创建的 zip 文件中提取时出错 - "Windows cannot complete the extraction."

标签 c# stream dotnetzip

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

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

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

Windows cannot complete the extraction. The destination file could not be created.

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

enter image description here

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

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

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

最佳答案

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

关于c# - 从 dotnetzip 创建的 zip 文件中提取时出错 - "Windows cannot complete the extraction.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863601/

相关文章:

IOS检查是否连接了m3u8流

python - FFmpeg Drawbox 和 ZMQ b'38 功能未实现'

powershell - 如何在Powershell中使用DotNetZip仅压缩文件而不压缩完整路径层次结构?

c# - 如何在 c#.net 项目中添加 Ionic.Zip.dll 并使用它从文件夹创建 zip?

c# - 为所有线程设置默认线程文化?

c# - 在使用 MVVM 的 WPF 中,谁负责管理外部通信?

C# - 是否可以使用 RSA SHA512 对哈希进行签名?

java - 如果-1是标准的EOF字节,为什么DataInputStream要这样做?

c# - 无法使用已使用的键(LINQ)添加实体

c# - 下载按钮不显示