Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SortZip

文件分类 → 可选命名规则 → 分组加密压缩,一站式批处理工具。

基于 Bandizip 命令行实现自动分卷、密码保护和二次打包归档。支持任务中断后从断点文件继续压缩。


快速开始

环境要求: Windows + Bandizip(加入 PATH)

直接运行 dist/SortZip.exe 即可启动图形界面。


功能流程

  1. 分类 — 按扩展名将输入文件归类至输出文件夹的子目录(支持自定义分类名);开启「保持原文件夹层级」时保留子目录结构
  2. 命名规则(可选)— 每个文件夹可独立配置模板({n}{ext}{folder}{original}),支持预设快速填充;层级模式下子文件夹自动继承父级规则
  3. 对照表(可选)— 勾选后在各文件夹生成 List.txt,记录序号、原文件名、新文件名(及压缩包名),\t 分隔可直接导入 Excel
  4. 分组压缩(可选)— 每 N 个文件一组,Bandizip 带密码压缩,自动或手动分卷;可仅执行一次压缩(无 -First 后缀)或两次压缩(先分卷后归档)
  5. 二次压缩(可选)— 分卷文件再次打包为单文件归档(默认后缀 .zipp,可自定义)

执行前自动校验:

  • 输出文件夹冲突检测
  • 输入文件类型匹配检测
  • 命名模板冲突检测
  • 重复文件名检测(开启递归时自动扫描,提示启用层级模式)
  • 文件包含情况提示(展示未勾选扩展名的文件列表)

恢复任务

压缩过程中自动生成断点文件(.sortzip_resume.json,位于输出文件夹根目录)。任务中断后可从中断处恢复:

  • 开始页点击「恢复任务(导入断点)」选择或直接拖入断点文件
  • 确认恢复摘要(输出文件夹/待处理组数/分卷/后缀等)并重新输入密码
  • 已完成的组跳过,一次压缩完成的组仅补二次打包,未开始的组完整重压
  • 导入时自动校验待压缩分组的源文件:若发现文件缺失或被修改(大小与断点记录不一致)会弹出警告,可取消恢复或继续(继续则跳过存在问题、保留未压缩的分组)

取消行为

取消方式 行为 源文件
安全取消 当前压缩组完成即自动停止,生成断点文件 完整保留
强制取消 立即终止当前压缩进程 完整保留,可从断点恢复

界面导航

左侧导航栏切换,共 6 个页面:

页面 功能
文件 文件选择(输入/输出文件夹、包含子文件夹)、密码设置(压缩密码/确认密码/记住密码)、分卷设置(每包文件数/分卷大小/启用分卷)
映射 扩展名→文件夹名映射,分组勾选(视频/音乐/图片/文档/程序/字体/压缩包),支持拖拽排序;「映射全部」一键扫描输入文件夹并启用全部文件类型的映射,「删除全部」一键清空所有映射
命名 排序设置(7 种排序预设,重复选择也触发刷新)、保持原文件夹层级、每个映射文件夹独立命名规则(支持预设模板)、命名规则表支持拖拽排序、压缩后重命名(一次/二次压缩后独立后缀替换,一次压缩后仅限未启用分卷)
预览 标签页切换文件夹,显示所有文件重命名前后对比,支持拖拽手动排序(排序结果影响实际执行顺序)
开始 压缩设置(一次压缩、二次压缩、压缩格式、压缩后校验完整性)、其他选项(保留原始文件、输出目录 List.txt、自动关闭 Bandizip)、进度条、执行/取消、实时日志、统计报告
设置 深色模式、执行前确认参数(含文件包含情况提示)、使用手册、版本信息、还原默认设置、自动更新检查

输出结构示例

扁平模式(默认)

E:\输出文件夹\
├── 图片\
│   ├── 照片_1.jpg      # 按命名规则重命名
│   ├── 照片_2.jpg
│   ├── List.txt         # 命名对照表(可选)
│   ├── 1-4.zip          # 第一次压缩分卷
│   └── 5-8.zipp         # 二次压缩归档
├── 文档\
│   ├── 1.txt
│   ├── List.txt
│   └── 1-2.zipp
└── 视频\
    └── ...

保持原文件夹层级

E:\输出文件夹\
├── 图片\
│   ├── 暑假\
│   │   ├── 1.jpg
│   │   ├── List.txt
│   │   └── 1.zip
│   └── 寒假\
│       ├── 1.jpg
│       ├── 2.jpg
│       ├── List.txt
│       └── 1-2.zip
└── 文档\
    └── ...

项目结构

SortZip/
├── sortzip_core/          # 核心包
│   ├── __init__.py        # 版本号
│   ├── app.py             # PySide6 GUI 主窗口
│   ├── engine.py          # 引擎(分类/重命名/压缩)
│   ├── widgets.py         # UI 组件(DropLineEdit、弹窗、Worker 线程)
│   ├── constants.py       # 扩展名预设、暗色主题、命名模板预设
│   └── manual_content.py  # 使用手册 HTML 文本
├── main.py                # 入口 → sortzip_core.app.main()
├── SortZip.py             # 旧版兼容入口 → sortzip_core.engine.cli()
├── dist/
│   └── SortZip.exe        # 打包好的可执行文件
├── icon.ico               # EXE 文件图标
├── README.md
└── CHANGELOG.md

注意事项

  • 仅支持 Bandizip,必须安装并加入 PATH
  • 密码非空时 ≥ 8 位
  • 命名规则默认禁用,需手动启用
  • 模板留空 = 不重命名,保留原始文件名
  • 压缩包名始终为组序号格式(1-45-8),不受文件命名规则影响
  • 排序方式位于「命名」页面顶部,可选 7 种排序预设;文件名排序使用自然序(1,2,…,10,11 而非 1,10,11,2,…
  • 开启「保持原文件夹层级」时,子文件夹继承父级命名规则,每个子文件夹独立重命名和压缩
  • 取消勾选「启用分卷」可强制单文件输出,不进行分卷
  • 勾选「输出目录」后各文件夹生成 List.txt\t 分隔,可直接拖入 Excel;未启用压缩时自动省略「所属压缩包名」列
  • 勾选「保留原始文件」时输入文件仅复制,压缩后副本自动清理
  • 取消勾选「一次压缩」可跳过所有压缩步骤,仅执行分类与重命名
  • 设置页「执行前确认参数」默认启用,每次执行前弹窗展示关键参数及文件包含情况;取消勾选后直接执行
  • 扩展名映射表和命名规则表均支持拖拽整行调整顺序
  • 「映射全部」扫描输入文件夹全部文件类型并启用映射,预设外的扩展名会弹窗提示输入文件夹名并创建新映射;「删除全部」一键清空所有映射
  • 效果预览表支持拖拽手动排序,切换排序预设时自动清空手动顺序
  • 「压缩后校验完整性」默认关闭,开启后压缩完逐一测试压缩包
  • 压缩后重命名分「一次压缩后」「二次压缩后」两行,各自独立启用后缀替换;一次压缩后的后缀替换仅在取消勾选「启用分卷」时可用(避免破坏分卷文件的 .z01/.z02 扩展名)
  • 选择压缩格式时,一次/二次压缩后的默认后缀会同步更新为该格式对应的后缀
  • 启动时自动检查 GitHub 最新 Release,发现新版本可选下载
  • 窗口尺寸和位置自动保存恢复
  • 设置页「还原默认设置」可一键清除所有配置
  • 首次使用建议先小范围测试

许可

MIT

About

能批量进行文件分类+重命名+规则化压缩的小工具

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages