MST

星途 面试题库

面试题:Go语言中os包如何拓展实现文件的批量重命名

在Go语言中,使用os包实现对某个目录下所有文件的批量重命名功能,假设新文件名需要在原文件名基础上添加前缀'new_',请编写相关代码实现,并简要说明os包中涉及的关键函数及作用。
37.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

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

func main() {
    directory := "./your-directory" // 替换为实际目录路径
    err := filepath.Walk(directory, func(filePath string, info os.FileInfo, err error) error {
        if err != nil {
            return err
        }
        if!info.IsDir() {
            newFileName := "new_" + info.Name()
            newFilePath := filepath.Join(filepath.Dir(filePath), newFileName)
            err = os.Rename(filePath, newFilePath)
            if err != nil {
                return err
            }
        }
        return nil
    })
    if err != nil {
        fmt.Println("重命名文件出错:", err)
    }
}

os包中涉及的关键函数及作用

  1. filepath.Walk
    • 作用:遍历指定目录及其子目录下的所有文件和目录。它会对每个文件和目录调用传入的回调函数。
  2. os.Rename
    • 作用:重命名文件或目录。第一个参数为原路径,第二个参数为新路径。如果新路径已存在且是一个文件,会返回错误。