私はmd5チェックサムに基づいてファイルの重複をチェックするプログラムを作ろうとしています。 そうでもない私は何かが足りないか、いないですか確かに、しかし、この機能はXCodeのインストーラアプリを読み込むには(それは8GBのように持っている)、私は問題をデバッグあたりとしてRAMioutil.ReadFileより高速な代替手段はありますか?
16GBのfunc search() {
unique := make(map[string]string)
files, err := ioutil.ReadDir(".")
if err != nil {
log.Println(err)
}
for _, file := range files {
fileName := file.Name()
fmt.Println("CHECKING:", fileName)
fi, err := os.Stat(fileName)
if err != nil {
fmt.Println(err)
continue
}
if fi.Mode().IsRegular() {
data, err := ioutil.ReadFile(fileName)
if err != nil {
fmt.Println(err)
continue
}
sum := md5.Sum(data)
hexDigest := hex.EncodeToString(sum[:])
if _, ok := unique[hexDigest]; ok == false {
unique[hexDigest] = fileName
} else {
fmt.Println("DUPLICATE:", fileName)
}
}
}
}
を使用してファイルの読み取り ではです。それを行うためのより良いアプローチがありますか? ありがとう
'md5.New'と' io.Copy'を試してみてください。 [example](https://golang.org/pkg/crypto/md5/#example_New_file)を見てください。 – putu