progress

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package progress 提供压缩和解压缩操作的进度显示功能。

该包实现了多种样式的进度显示,包括文本模式和进度条模式。 支持压缩和解压缩过程中的实时进度反馈,提供了统一的进度管理接口。

主要类型:

  • Progress: 进度显示器结构体

主要功能:

  • 支持多种进度条样式(文本、ASCII、Unicode、默认)
  • 提供压缩和解压缩的进度显示
  • 支持文件扫描进度显示
  • 提供带进度的数据复制功能
  • 自动管理进度条生命周期

支持的进度样式:

  • 文本模式:显示操作文本信息
  • ASCII模式:使用ASCII字符的进度条
  • Unicode模式:使用Unicode字符的精美进度条
  • 默认模式:使用库默认样式的进度条

使用示例:

// 创建进度显示器
progress := progress.New()

// 开始进度显示
err := progress.Start(totalSize, "archive.zip", "正在解压...")

// 带进度的数据复制
written, err := progress.CopyBuffer(dst, src, buffer)

// 关闭进度显示
err := progress.Close()

Package progress 提供源文件大小计算和进度显示的实用工具函数。

该文件实现了在压缩操作前计算源文件总大小的功能,用于初始化进度条的总进度。 支持单个文件和目录的递归大小计算,并在计算过程中显示扫描进度。

主要功能:

  • 计算源路径中所有普通文件的总大小
  • 在计算过程中显示扫描进度
  • 支持文件过滤器,跳过不需要的文件
  • 自动区分文件和目录处理
  • 只在进度条模式下执行计算

性能优化:

  • 文本模式下跳过大小计算,直接返回0
  • 支持过滤器提前跳过不需要的文件和目录
  • 实时更新扫描进度条
  • 错误容忍,遇到错误继续遍历

使用示例:

// 计算源文件总大小并显示进度
totalSize := progress.CalculateSourceTotalSizeWithProgress(
    srcPath,
    progressObj,
    "正在分析内容...",
    filterOptions
)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateSourceTotalSizeWithProgress added in v0.0.23

func CalculateSourceTotalSizeWithProgress(srcPath string, progress *Progress, scanMessage string, filter *types.FilterOptions) int64

CalculateSourceTotalSizeWithProgress 计算源路径中所有普通文件的总大小并显示进度

参数:

  • srcPath: 源路径(文件或目录)
  • progress: 进度显示对象
  • scanMessage: 扫描时显示的消息,如 "正在分析内容..."
  • filter: 文件过滤器,用于跳过不需要的文件

返回值:

  • int64: 普通文件的总大小(字节)

功能:

  • 只在进度条模式下计算总大小,文本模式返回 0
  • 显示扫描进度条并实时更新
  • 支持单个文件和目录的大小计算
  • 只计算普通文件,忽略目录、符号链接等特殊文件
  • 应用过滤器跳过不需要处理的文件

Types

type Progress added in v0.0.4

type Progress struct {
	Enabled  bool                // 是否启用进度显示
	BarStyle types.ProgressStyle // 进度条样式
	// contains filtered or unexported fields
}

Progress 控制台进度显示器

func New added in v0.0.5

func New() *Progress

New 创建进度显示器

返回:

  • *Progress: 简单进度显示器

func (*Progress) Adding added in v0.0.4

func (s *Progress) Adding(filePath string)

Adding 显示添加文件

参数:

  • filePath: 文件路径

func (*Progress) Archive added in v0.0.4

func (s *Progress) Archive(archivePath string)

Archive 显示压缩文件信息

参数:

  • archivePath: 压缩文件路径

func (*Progress) Close added in v0.0.15

func (s *Progress) Close() error

Close 关闭进度显示,清理资源

返回:

  • error: 清理错误

使用示例:

  • err := cfg.Progress.Close()

func (*Progress) CloseBar added in v0.0.16

func (s *Progress) CloseBar(bar *progressbar.ProgressBar) error

CloseBar 通用进度条关闭方法

参数:

  • bar: 进度条实例

返回:

  • error: 清理错误

func (*Progress) Compressing added in v0.0.4

func (s *Progress) Compressing(filePath string)

Compressing 显示压缩文件信息

参数:

  • filePath: 文件路径

func (*Progress) CopyBuffer added in v0.0.15

func (s *Progress) CopyBuffer(dst io.Writer, src io.Reader, buf []byte) (written int64, err error)

CopyBuffer 带进度显示的数据复制

参数:

  • dst: 目标写入器
  • src: 源读取器
  • buf: 缓冲区

返回:

  • written: 写入的字节数
  • err: 错误信息

使用示例:

written, err := cfg.Progress.CopyBuffer(fileWriter, zipReader, buffer, "file.txt")

func (*Progress) Creating added in v0.0.4

func (s *Progress) Creating(dirPath string)

Creating 显示创建目录

参数:

  • dirPath: 目录路径

func (*Progress) Inflating added in v0.0.4

func (s *Progress) Inflating(filePath string)

Inflating 显示解压文件

参数:

  • filePath: 文件路径

func (*Progress) IsEnabled added in v0.0.4

func (s *Progress) IsEnabled() bool

IsEnabled 检查是否启用

返回:

  • bool: 是否启用

func (*Progress) Start added in v0.0.15

func (s *Progress) Start(totalSize int64, archivePath, description string) error

Start 开始进度显示,创建进度条

参数:

  • totalSize: 总数据大小
  • archivePath: 压缩包路径(用于文本模式显示)
  • description: 操作描述(用于进度条模式显示,如"正在解压 xxx.zip...")

返回:

  • error: 初始化错误

func (*Progress) StartScan added in v0.0.16

func (s *Progress) StartScan(description string) *progressbar.ProgressBar

StartScan 开始扫描进度显示,创建进度条

参数:

  • description: 操作描述(如"正在计算文件大小...")

返回:

  • bar: 进度条实例

func (*Progress) Storing added in v0.0.4

func (s *Progress) Storing(dirPath string)

Storing 显示存储目录

参数:

  • dirPath: 目录路径

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL