如何使用 System.IO.Compression.GZipStream 压缩后获得压缩文件的扩展名?

例如,如果原始文件名为 test.doc 并压缩为 test.gz ,我如何知道解压缩时要使用的文件扩展名?

有帮助吗?

解决方案

前段时间我不得不这样做。解决方案是使用J#库来完成它。你仍然用C#编写它。

http://msdn.microsoft.com/en-us/magazine /cc164129.aspx

这是微软的回答。

其他提示

无法获取文件名 - 实际上根本不会有文件名,例如,如果在内存中创建了一段数据,然后通过网络连接发送。

不是替换文件扩展名,而是为什么不追加它,例如:test.doc.gz 然后你可以在解压缩时将其剥离。

不确定你的问题是什么 - 我假设你想要一种“记住”的机制。在压缩发生之前扩展是什么?

如果这是问题,则test.doc压缩到test.doc.gz的约定将起作用。

test.gz只是一个原始字节流,没有关于压缩内容的元数据(例如,原始文件名,扩展名等)。您需要做的是创建一个存档,其中包含有关存档中包含的每个文件的gzip流和元数据。

Mech Software的答案中链接的文章提供了一种非常合理的方式实现这一点。

还有一个问题(模糊相关)问了一些可能有帮助的时间:

  

如何压缩目录使用内置的.net压缩类?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top