So im trying to build a functionality using os.Rename() that will reorder my file names but im not sure why it isnt working. Does someone have any idea why?
func reorderUserFiles() {
files, prefixes, _ := getDirFilenames(true)
for i, file := range files {
if prefixes[i] > 0 && prefixes[i] != prefixes[i-1]+1 {
fmt.Println("File is different", prefixes[i])
absFname, _ := filepath.Abs(file)
fmt.Println("absFilename =>", absFname)
idxBeginFile := strings.LastIndex(absFname, "/")
newFileName := absFname[:idxBeginFile] + "/" + fmt.Sprintf("%04d", prefixes[i-1]+1) + file[4:]
fmt.Println("absFname => ", absFname)
fmt.Println("nfName => ", newFileName)
err := os.Rename(absFname, newFileName)
if err != nil {
fmt.Println(err)
return
} else {
fmt.Println(FmtGreen("File succesfully renamed"))
}
}
}
}
Output:
File is different 9
absFilename => /home/victor/Projetos/golang/go-migrations/0009.teste.sql
absFname => /home/victor/Projetos/golang/go-migrations/0009.teste.sql
nfName => /home/victor/Projetos/golang/go-migrations/0003.teste.sql
rename /home/victor/Projetos/golang/go-migrations/0009.teste.sql /home/victor/Projetos/golang/go-migrations/0003.teste.sql: no such file or directory```