This repository has been archived on 2026-07-15. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
drive/backend/handlers/utils.go
Elijah 267d429122
Some checks failed
Automated Container Build / build-and-push (push) Failing after 8s
Numerous Bug Fixes
2026-05-22 15:50:45 -07:00

28 lines
716 B
Go

package handlers
import (
"fmt"
"os"
"path/filepath"
)
// GetUniquePath checks if a file or folder exists at the given baseDir with the given name.
// If it does, it systematically appends " (1)", " (2)", etc., until it finds an available name.
// It returns the unique filename.
func GetUniquePath(baseDir, name string) string {
ext := filepath.Ext(name)
base := name[:len(name)-len(ext)]
finalPath := filepath.Join(baseDir, name)
if _, err := os.Stat(finalPath); os.IsNotExist(err) {
return name
}
for i := 1; ; i++ {
newName := fmt.Sprintf("%s (%d)%s", base, i, ext)
finalPath = filepath.Join(baseDir, newName)
if _, err := os.Stat(finalPath); os.IsNotExist(err) {
return newName
}
}
}