【奇怪的工具】压缩包转换器,不产生临时文件

作者:V君 发布于:2022-5-27 23:32 Friday 分类:我的应用

TL;DR:

首先是 源代码 和作为 Release 的 Win64 DEMO
然后是 DEMO 的用法:
SevenRepacker.exe [/out-dir:d:\zips] d:\archives\1.7z d:\archives\2.7z …
  - 输出路径 /out-dir: 可选参数,不指定就会输出到原始文件旁边
  - 输入文件 支持动态个数
限制:输出格式被固定成 zip 压缩算法固定 Copy
限制:目前只确定输入文件是 Copy 算法的 7z 能顺利转换成 zip,其他非预期情况未处理

听简单我扯扯:

我习惯把看过的动画片打包归档,用的是 Copy 算法,视频文件重新压缩无意义。 早些时候打了一堆 7z 包,以为只要是 Copy 算法就可以轻松 mount ,用到才发现并没有支持把 7z 归档 mount 成虚拟驱动器的开源(或免费)软件,自己常用的 ImDisk、Pismo File Mount、OSFMount 全都不支持 7z (Pismo File Mount 支持 zip),那就得安排一下做转换了,把这堆 7z 转成 zip 。

手动解开再压缩是不可能手动的,还得找地方放临时文件。在昨天临睡之前古狗了一下转换压缩包的方法,查到的方法不外乎都是先解压,再重新打包,顶多就来点脚本。太没意思了。

关掉浏览器,想想能不能自己写一个小工具,反正只要能流式读取压缩包,那就能做到像管道那样直达目标。前些年我用过的 SevenZipSharp 库就提供了流式 API,稍微做点 tricks 就能搞定了,于是针对我这个使用场景的实现就出来了,作为 demo 放出来。

这个月依旧差点找不到值得发表的内容 _(:з)∠)_

标签: 软件开发 C# 命令行

引用地址:

发表评论:

Powered by emlog 去你妹的备案 sitemap