In this article I will show you How to rename all files in a directory with Go.
Read all files in an directory
files, err := ioutil.ReadDir("/Users/azzamjiul/Code/scripts/raw")
if err != nil {
println(err.Error())
}
Make rename function
func rename_file(original_path string, new_path string) {
e := os.Rename(original_path, new_path)
if e != nil {
println(e.Error())
}
println(original_path, new_path)
}
For loop then rename it
var filename string
var filenameNew string
var original_path string
var new_path string
for _, file := range files {
filename = file.Name()
filenameNew = strings.Split(filename, "_")[1]
println(filename, filenameNew)
original_path = "/Users/azzamjiul/Code/scripts/raw/" + filename
new_path = "/Users/azzamjiul/Code/scripts/after_raw/" + filenameNew
rename_file(original_path, new_path)
}
Full source code to rename all files in a directory with Go
package main
import (
"io/ioutil"
"os"
"strings"
)
func rename_file(original_path string, new_path string) {
e := os.Rename(original_path, new_path)
if e != nil {
println(e.Error())
}
println(original_path, new_path)
}
func main() {
files, err := ioutil.ReadDir("/Users/azzamjiul/Code/scripts/raw")
if err != nil {
println(err.Error())
}
var filename string
var filenameNew string
var original_path string
var new_path string
for _, file := range files {
filename = file.Name()
filenameNew = strings.Split(filename, "_")[1]
println(filename, filenameNew)
original_path = "/Users/azzamjiul/Code/scripts/raw/" + filename
new_path = "/Users/azzamjiul/Code/scripts/after_raw/" + filenameNew
rename_file(original_path, new_path)
}
}