mirror of
https://github.com/JaCoB1123/dupe-finder.git
synced 2025-05-18 06:01:56 +02:00
Implement moving instead of deleting
This commit is contained in:
parent
ebc4a20526
commit
83521eeae6
37
main.go
37
main.go
@ -19,9 +19,42 @@ var fromFile = flag.String("from-file", "", "Load results file from <path>")
|
||||
var toFile = flag.String("to-file", "", "Save results to <path>")
|
||||
var deleteDupesIn = flag.String("delete-dupes-in", "", "Delete duplicates if they are contained in <path>")
|
||||
var promptForDelete = flag.Bool("delete-prompt", false, "Ask which file to keep for each dupe-set")
|
||||
var moveToFolder = flag.String("move-files", "", "Move files to <path> instead of deleting them")
|
||||
var force = flag.Bool("force", false, "Actually delete files. Without this options, the files to be deleted are only printed")
|
||||
var verbose = flag.Bool("verbose", false, "Output additional information")
|
||||
|
||||
func Delete(path string) {
|
||||
if !*force {
|
||||
return
|
||||
}
|
||||
|
||||
if *moveToFolder == "" {
|
||||
os.Remove(path)
|
||||
return
|
||||
}
|
||||
|
||||
MoveButDontOvewrite(path, *moveToFolder)
|
||||
}
|
||||
|
||||
func MoveButDontOvewrite(path string, targetPath string) {
|
||||
num := 0
|
||||
|
||||
filename := filepath.Base(path)
|
||||
|
||||
target := filepath.Join(targetPath, filename)
|
||||
|
||||
for {
|
||||
_, err := os.Stat(target)
|
||||
if os.IsNotExist(err) {
|
||||
os.Rename(path, target)
|
||||
return
|
||||
}
|
||||
|
||||
target = filepath.Join(targetPath, filename+"."+strconv.Itoa(num))
|
||||
num++
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
@ -65,7 +98,7 @@ func main() {
|
||||
if strings.HasPrefix(filepath.Clean(file), deleteIn) {
|
||||
fmt.Println("Would delete ", file)
|
||||
if *force {
|
||||
os.Remove(file)
|
||||
Delete(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -84,7 +117,7 @@ func main() {
|
||||
for i, file := range duplicateFiles {
|
||||
fmt.Println(i+1, file)
|
||||
if *force {
|
||||
os.Remove(file)
|
||||
Delete(file)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user