使用Go语言实现批量重命名文件的操作步骤

 更新时间:2025年07月24日 08:52:54   作者:程序员爱钓鱼  
这篇文章主要介绍了使用Go语言批量重命名文件的完整内容,适合初学者实践如何使用 Go 操作文件系统并批量处理文件名,文中有详细的代码示例供大家参考,需要的朋友可以参考下

案例目标

实现一个小工具,能够批量重命名指定目录下的所有文件,例如统一添加前缀、后缀,或按照顺序编号。

应用场景

  • • 批量重命名图片、视频、文档等
  • • 整理爬虫下载的文件
  • • 按规则生成项目资源命名

涉及知识点

  • • 使用 os.ReadDir() 读取目录内容
  • • 使用 os.Rename() 修改文件名
  • • 使用 filepath.Ext() 获取文件扩展名
  • • 字符串拼接和格式化

示例代码:为文件添加统一前缀

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    dir := "./testfiles" // 目标文件夹
    prefix := "new_"     // 要添加的前缀

    // 读取目录下所有文件
    files, err := os.ReadDir(dir)
    if err != nil {
        fmt.Println("读取目录失败:", err)
        return
    }

    for _, file := range files {
        if file.IsDir() {
            continue // 跳过子目录
        }

        oldPath := filepath.Join(dir, file.Name())
        newName := prefix + file.Name()
        newPath := filepath.Join(dir, newName)

        // 重命名文件
        err := os.Rename(oldPath, newPath)
        if err != nil {
            fmt.Printf("重命名失败: %s -> %s, 错误: %v\n", oldPath, newPath, err)
        } else {
            fmt.Printf("重命名成功: %s -> %s\n", oldPath, newPath)
        }
    }
}

示例目录结构(执行前)

testfiles/
├── a.jpg
├── b.jpg
├── c.png

执行后结果

testfiles/
├── new_a.jpg
├── new_b.jpg
├── new_c.png

技术说明

函数/模块用途说明
os.ReadDir()获取指定路径下的所有文件和文件夹
file.IsDir()判断是否为文件夹
filepath.Join()拼接路径,避免平台兼容问题
os.Rename()执行文件重命名操作

拓展用法:添加编号重命名

newName := fmt.Sprintf("img_%03d%s", i+1, filepath.Ext(file.Name()))

执行结果:

img_001.jpg
img_002.jpg
img_003.png

小结

本案例让你掌握了如何读取目录文件并批量重命名,这一技能在数据清洗、媒体资源管理中非常实用。通过灵活控制文件名规则,你可以轻松构建批处理工具。

到此这篇关于使用Go语言实现批量重命名文件的操作步骤的文章就介绍到这了,更多相关Go批量重命名文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go语言使用select监听多个channel的示例详解

    Go语言使用select监听多个channel的示例详解

    本文将聚焦 Go 并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个 Channel,实现多任务处理、超时控制和非阻塞通信等并发技巧
    2025-08-08
  • Go实现用户每日限额的方法(例一天只能领三次福利)

    Go实现用户每日限额的方法(例一天只能领三次福利)

    这篇文章主要介绍了Go实现用户每日限额的方法(例一天只能领三次福利)
    2022-01-01
  • Golang中crypto/ecdsa库实现数字签名和验证

    Golang中crypto/ecdsa库实现数字签名和验证

    本文主要介绍了Golang中crypto/ecdsa库实现数字签名和验证,将从ECDSA的基本原理出发,详细解析如何在Go语言中实现数字签名和验证,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Go 1.21.0 新增结构化日志记录标准库log/slog使用详解

    Go 1.21.0 新增结构化日志记录标准库log/slog使用详解

    这篇文章主要为大家介绍了Go 1.21.0 新增结构化日志记录标准库log/slog使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 快速上手GO的net/http包

    快速上手GO的net/http包

    本文主要介绍了快速上手GO的net/http包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • GO语言基本类型分析

    GO语言基本类型分析

    这篇文章主要介绍了GO语言基本类型,较为详细的分析了整形、浮点型、字符串、指针等类型的具体用法,是深入学习GO语言所必须掌握的重要基础,需要的朋友可以参考下
    2014-12-12
  • 如何使用proto组件编译pb.go文件

    如何使用proto组件编译pb.go文件

    这篇文章主要介绍了如何使用proto组件编译pb.go文件的详细过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • go 原子操作的方式及实现原理全面深入解析

    go 原子操作的方式及实现原理全面深入解析

    这篇文章主要为大家介绍了go 原子操作的方式及实现原理深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • win10下go mod配置方式

    win10下go mod配置方式

    这篇文章主要介绍了win10下go mod配置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • golang解析json数据的4种方法总结

    golang解析json数据的4种方法总结

    在日常工作中每一名开发者,不管是前端还是后端,都经常使用 JSON,下面这篇文章主要给大家介绍了关于golang解析json数据的4种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06

最新评论