[go] Go 언어의 경로를 이용한 파일 및 디렉토리 비교

Go 언어를 사용하여 파일 및 디렉토리를 비교하기 위해 경로를 다루는 방법에 대해 알아보겠습니다.

파일 비교

Go에서 두 파일을 비교하는 가장 간단한 방법은 파일의 내용 또는 속성을 읽어 비교하는 것입니다. 디렉토리 내의 파일을 비교하려면 filepath 라이브러리를 사용할 수 있습니다.

package main

import (
	"io/ioutil"
	"log"
	"os"
)

func main() {
	file1, err := ioutil.ReadFile("path/to/file1.txt")
	if err != nil {
		log.Fatal(err)
	}

	file2, err := ioutil.ReadFile("path/to/file2.txt")
	if err != nil {
		log.Fatal(err)
	}

	if string(file1) == string(file2) {
		log.Println("Files are identical")
	} else {
		log.Println("Files are different")
	}
}

디렉토리 비교

디렉토리 내의 파일을 비교하기 전에 filepath.Walk 함수를 사용하여 모든 파일과 서브디렉토리를 재귀적으로 방문할 수 있습니다.

package main

import (
	"log"
	"os"
	"path/filepath"
)

func main() {
	filepath.Walk("path/to/directory1", func(path1 string, info os.FileInfo, err error) error {
		if err != nil {
			log.Println(err)
			return nil
		}
		path2 := "path/to/directory2" + path1[len("path/to/directory1"):]
		info2, err := os.Stat(path2)
		if os.IsNotExist(err) || info2 == nil {
			log.Println("File", path1, "does not exist in directory2")
		}
		return nil
	})
}

마치며

Go 언어의 경로를 이용한 파일 및 디렉토리 비교 방법에 대해 간단히 살펴보았습니다. 이러한 방법을 통해 파일 및 디렉토리 간의 차이를 비교하고 싶을 때 유용하게 활용할 수 있습니다.

참조: