golang 如何实现解压各种文件并附带 console 进度条

12 天前
 chen0520

mholt/archiver 这个库好像并没有带进度的回调,gpt 搜了几个实现,感觉都不太行,有人做过类似的功能吗? 我看实际解压文件,这类进度基本都是带的啊,实现应该都不复杂啊

1637 次点击
所在节点    Go 编程语言
8 条回复
ysicing
12 天前
https://github.com/cheggaaa/pb 你说这个么,我用这个弄过文件操作的进度条。感觉好像没太大场景吧🤔
lqs
12 天前
写文件的时候,自己累加 Write 的大小,或用 TeeReader 写到计数器
Sendya
12 天前
很多进度都是伪进度,通过 进度=current/total*100 。
但是我看了眼你描述的这个库,作者有提供一个思路是非常好的,通过读取与写出的 buf 大小累计,可以得出进度,因为原始压缩文件的大小是可以在 OpenFile 返回的 File.Stat() 取到,在计算百分比进度就可以了,这个准确度比通过 已经解压的文件数/总文件数*100 来的更准确些

https://github.com/mholt/archives/issues/16#issuecomment-2651918336
lolico
12 天前
可以看下 progressbar
lolico
12 天前
PungentSauce
12 天前
我也是用的楼上 github.com/schollz/progressbar 下载文件配合 progressbar 库实现的进度条
Mohanson
12 天前
sthwrong
10 天前
进度条库好找,不过 op 可能想要的是 3 楼的答案,也就是从哪里取得进度数据给进度条实现使用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1155072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX