用go语言删除重复文件
文章目录
- 用go语言删除重复文件
- 需求:将同级别目录(只有一层的目录,没子目录)下的重复文件删除
- 打包成exe文件
- 使用
需求:将同级别目录(只有一层的目录,没子目录)下的重复文件删除
package mainimport ("crypto/sha256""fmt""io/ioutil""os"
)func main() {files := make(map[string]string)duplicates := make(map[string]bool)// 获取当前目录下的所有文件fileList, err := ioutil.ReadDir(".")if err != nil {fmt.Println("读取目录时出错:", err)return}// 遍历所有文件for _, file := range fileList {if !file.IsDir() {filePath := file.Name()content, err := ioutil.ReadFile(filePath)if err != nil {fmt.Println("读取文件时出错:", err)continue}hash := sha256.Sum256(content)hashString := fmt.Sprintf("%x", hash)// 检查是否有重复文件if existingFile, ok := files[hashString]; ok {fmt.Printf("发现重复文件: %s 和 %s\n", filePath, existingFile)duplicates[filePath] = true} else {files[hashString] = filePath}}}// 删除重复文件for file := range duplicates {err := os.Remove(file)if err != nil {fmt.Println("删除文件时出错:", err)} else {fmt.Println("已删除重复文件:", file)}}
}
打包成exe文件
go build -o 删除重复文件.exe main.go
使用
只需将删除重复文件.exe
放到想要删掉重复文件的目录下,双击运行就会删掉重复的文件了。