Go实现Windows文件按后缀自动分类整理工具
1 工具简介
在日常学习和项目整理过程中,一些资料目录里经常会堆积大量不同类型的文件,例如 Word、Excel、PDF、图片、压缩包、代码文件等。如果全部手动分类,不仅效率低,而且容易漏掉文件。
本文整理一个使用 Go 语言编写的 Windows 文件整理小工具。该工具可以根据文件后缀名自动创建分类文件夹,并将文件移动到对应目录中。同时,程序会在目标目录下创建一个以当前日期命名的文件夹,方便保留每次整理的时间标记。
1.1 工具功能
这个工具主要完成以下工作:
① 读取指定目录中的文件。
② 根据文件后缀判断文件类型。
③ 在目标目录下创建当前日期文件夹。
④ 在日期文件夹中按后缀创建分类子目录。
⑤ 将文件移动到对应的后缀分类目录中。
⑥ 支持通过配置文件设置需要跳过的文件、文件类型和需要处理的扩展名。
1.2 适用场景
这个工具适合以下场景:
① 整理需要将资源目录按照文件类型的不同进行整理。
② 需要保留每次文件整理的日期。
不建议直接用于系统目录、重要生产目录或没有备份的关键数据目录。
2 运行环境
2.1 系统环境
当前工具主要面向 Windows 环境使用,原始测试环境为:
Windows 11程序采用 Go 语言编写,编译后为 Windows 下可直接运行的.exe文件。
2.2 程序文件
编译后的程序文件名为ogz.exe,存储在dist文件夹下:
ogz.exe使用时可以将ogz.exe放在一个固定目录中,不过为使用方便建议放在系统环境变量中定义的目录中,例如:
C:\Users\username\command后续默认配置文件也会放在如下目录下
C:\MyProject\ogz\config.json3 配置文件
3.1 初始化配置文件
第一次使用前,需要先生成默认配置文件。在命令行窗口中执行:
ogz init执行成功后,程序会创建默认配置文件:
C:\MyProject\ogz\config.json3.2 配置文件结构
默认配置文件内容如下:
{"files":["此电脑","回收站","控制面板"],"types":[],"extensions":[".txt",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".md",".jpg",".jpeg",".png",".gif",".bmp",".tif",".svg",".webp",".ico",".mp3",".wav",".aac",".ogg",".flac",".m4a",".mp4",".avi",".mkv",".mov",".wmv",".flv",".webm",".zip",".tar",".tar.gz",".tar.xz",".rar",".gz",".7z",".bz2",".html",".htm",".css",".js",".json",".xml",".php",".asp",".jsp",".sql",".db",".sqlite",".mdb",".accdb",".py",".java",".cpp",".c",".rb",".go",".exe",".caj",".msi"]}3.3 配置字段说明
配置文件中包含三个主要字段:
| 字段 | 作用 |
|---|---|
files | 按“完整文件名”跳过 |
types | 按“后缀名”跳过 |
extensions | 允许分类的后缀名白名单 |
4 文件分类方法
4.1 基本命令格式
在ogz.exe所在目录下打开命令行窗口,执行:
ogz.exe <class_dir_path> <config_path>参数说明如下:
| 参数 | 说明 |
|---|---|
class_dir_path | 需要整理的文件夹路径 |
config_path | 配置文件路径,可选参数 |
如果没有传入config_path,程序会使用默认配置文件:
C:\MyProject\ogz\config.json4.2 使用示例
假设需要整理的文件夹为:
D:\TempFiles进入目标文件夹并进入cmd:
ogz.如果想使用自定义配置文件,可以执行:
ogz.C:\MyProject\ogz\config.json其中“.”表示当前文件夹的路径
4.3 整理后的目录结构
程序运行后,会在被整理目录下创建一个当前日期文件夹。日期格式类似:
20260706整理后的目录结构大致如下:
D:\TempFiles └── 20260706 ├── pdf ├── docx ├── xlsx ├── png ├── zip └── py不同后缀的文件会被移动到对应的分类文件夹中。
5 注意事项
5.1 不处理文件夹
当前工具只对文件进行分类处理,不对文件夹进行递归整理。
也就是说,如果目标目录中存在子文件夹,程序不会继续进入子文件夹内部整理文件。
5.2 不建议整理 C 盘目录
为了避免对系统文件造成影响,程序不允许对 C 盘中的文件进行分类处理。
此规则主要为了防止误操作。文件移动操作具有一定风险,尤其是在系统盘、软件安装目录或桌面同步目录中运行时,更应该谨慎。
5.3 运行前建议备份
由于程序对文件的整理为移动处理并非复制处理,因此在第一次使用时,建议先找一个测试文件夹进行验证。确认分类结果符合预期后,再对真实资料目录使用。
6 工具优点与局限
6.1 工具优点
这个工具的优点主要有:
① 使用简单,只需要一条命令即可整理文件。
② 配置文件可修改,方便扩展文件后缀。
③ 按日期归档,便于追踪每次整理结果。
④ 使用 Go 编译为 exe 后,不依赖额外运行环境。
⑤ 适合处理桌面、下载目录、学习资料目录等轻量场景。
⑥ 仅处理指定文件夹下的第一层文件,不递归子文件夹,避免误操作系统文件。
6.2 当前局限
作为练手项目,当前版本存在以下局限性:
① 不递归处理子文件夹。
② 不适合处理系统目录。
③ 没有图形界面,主要通过命令行使用。
④ 文件移动后如果想撤销,需要手动还原。
⑤ 仅支持将文件按后缀整理到相应的文件夹中,不支持多分类方式的整理
⑥ 带后缀的文件夹也会被作为文件参与整理。
7 程序源码
7.1 下载地址
源码和程序包可以通过以下链接获取:
百度网盘:https://pan.baidu.com/s/1NQ0cZRpnPgzVUR0LH385BA?pwd=qrcd 提取码:qrcd 文件名:ogz.zip8 总结
这是一个基于 Go 语言实现的 Windows 文件自动分类工具。它可以根据文件后缀对目标目录中的文件进行分类,并将结果放入当前日期目录中。
对于桌面、下载目录、临时资料目录这类经常变得混乱的位置,这类小工具可以明显减少手动整理成本。实际使用时,需要特别注意测试、备份和目录选择,避免在重要目录或系统目录中直接运行。