用go语言删除重复文件
文章目录
- 用go语言删除重复文件
- 需求:将同级别目录(只有一层的目录,没子目录)下的重复文件删除
- 打包成exe文件
- 使用
需求:将同级别目录(只有一层的目录,没子目录)下的重复文件删除
package main import ( "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放到想要删掉重复文件的目录下,双击运行就会删掉重复的文件了。
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章