上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

用go语言删除重复文件

guduadmin271月前

用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放到想要删掉重复文件的目录下,双击运行就会删掉重复的文件了。

网友评论

搜索
最新文章
热门文章
热门标签
 
 怀孕梦到鱼是什么意思  女人梦见硕果累累的果树  梦见和已故父亲说话