Goでファイルをバッチで修正する方法
Go言語では、ioutilパッケージのReadDir関数で指定したディレクトリにあるすべてのファイルが列挙でき、osパッケージのRename関数またはWriteFile関数を使用してファイルをまとめて変更できます。
指定のディレクトリ内のすべてのファイル名にサフィックスを追加するサンプルコードは以下のとおりです。
package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
)
func main() {
dir := "./path/to/directory" // 指定目录
files, err := ioutil.ReadDir(dir)
if err != nil {
fmt.Println("读取目录失败:", err)
return
}
for _, file := range files {
oldName := file.Name()
newName := oldName + ".bak" // 添加后缀
oldPath := filepath.Join(dir, oldName)
newPath := filepath.Join(dir, newName)
err := os.Rename(oldPath, newPath)
if err != nil {
fmt.Printf("重命名文件 %s 失败: %v\n", oldName, err)
} else {
fmt.Printf("重命名文件 %s 成功\n", oldName)
}
}
}
留意事項:
- ファイルパスを作成するにはfilepath.Join 関数を使用して、プラットフォーム間の互換性を確保する必要があります。
- ファイルのパスを元のパスと新しいパスにリネーム関数を使用して渡す必要があります。
- WriteFile関数を呼び出す際は、新しいファイルパスと修正後のコンテンツを渡す必要があります。