答案:使用Golang的os、filepath和strings包可实现文件批量处理与重命名,通过filepath.Walk遍历目录,结合自定义规则如添加前缀、替换字符串、正则匹配等进行重命名,支持递归扫描与灵活命名策略,最终编译为单文件跨平台二进制工具。

用Golang写一个文件批量处理与重命名工具,其实并不复杂。核心是利用标准库中的 os、path/filepath 和 strings 包来遍历目录、操作路径和处理文件名。下面是一个实用的实现思路和代码示例,帮助你快速构建自己的工具。
使用 filepath.Walk 可以递归遍历目录,获取每一个文件或目录的信息。我们只关心文件,所以需要判断是否为文件。
示例代码:
func scanFiles(root string) ([]string, error) {
var files []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
files = append(files, path)
}
return nil
})
return files, err
}
重命名的关键是定义命名规则。比如:统一前缀、替换关键字、添加序号、转小写等。你可以通过函数参数接收规则配置。
立即学习“go语言免费学习笔记(深入)”;
常见操作包括:
示例:添加前缀并转小写
func renameWithPrefix(files []string, prefix string) error {
for _, file := range files {
dir := filepath.Dir(file)
ext := filepath.Ext(file)
name := strings.TrimSuffix(filepath.Base(file), ext)
newName := prefix + strings.ToLower(name) + ext
newPath := filepath.Join(dir, newName)
if err := os.Rename(file, newPath); err != nil {
return err
}
fmt.Printf("Renamed: %s → %s\n", file, newPath)
}
return nil
}
如果需要更灵活的匹配,可以引入 regexp 包。例如把日期格式从 YYYY-MM-DD 转为 DD.MM.YYYY。
示例:使用正则替换文件名
func renameWithRegex(files []string, pattern, replacement string) error {
re, err := regexp.Compile(pattern)
if err != nil {
return err
}
for _, file := range files {
dir := filepath.Dir(file)
ext := filepath.Ext(file)
name := strings.TrimSuffix(filepath.Base(file), ext)
newName := re.ReplaceAllString(name, replacement) + ext
newPath := filepath.Join(dir, newName)
if err := os.Rename(file, newPath); err != nil {
return err
}
fmt.Printf("Renamed: %s → %s\n", file, newPath)
}
return nil
}
组合以上功能,在 main 中接收命令行参数或直接写死测试路径。
func main() {
rootDir := "./test_files" // 修改为你的目录
files, err := scanFiles(rootDir)
if err != nil {
log.Fatal(err)
}
// 示例:添加前缀
// renameWithPrefix(files, "backup_")
// 示例:用正则替换下划线为短横线
renameWithRegex(files, `_`, `-`)
}
基本上就这些。你可以把这个工具封装成 CLI 程序,加入 flag 支持用户输入目录、规则、是否递归等。Golang 编译后是单文件二进制,跨平台运行很方便,适合日常自动化处理。
以上就是Golang构建文件批量处理与重命名工具的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号