使用GZipStream压缩文件,同时保留其元数据
-
05-07-2019 - |
题
如何使用 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的答案中链接的文章提供了一种非常合理的方式实现这一点。
还有一个问题(模糊相关)问了一些可能有帮助的时间:
不隶属于 StackOverflow