package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
)
// 找到文件夹中重复的文件
func findDuplicate(root string) []string {
// 创建一个保存文件名的 map,初始值为 0
files := make(map[string]int)
var result []string
// 遍历文件夹
filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 如果是文件夹,则不处理
if info.IsDir() {
return nil
}
// 获取文件名
file := info.Name()
// 文件名在 map 中计数,如果计数为 2,说明是重复文件
files[file]++
if files[file] == 2 {
result = append(result, file)
}
return nil
})
return result
}
func main() {
root := "./example"
result := findDuplicate(root)
fmt.Println(result)
}