[go] 경로 상대적으로 변환

파일 경로를 다룰 때 상대적인 경로 변환은 매우 유용합니다. 상대적인 경로 변환을 통해 파일이나 디렉토리의 위치를 기준으로 다른 위치에 있는 파일을 참조할 수 있습니다.

현재 작업 디렉토리 확인

먼저 현재 작업 디렉토리를 확인해야 합니다. Go 언어에서는 os 패키지를 사용하여 현재 작업 디렉토리를 확인할 수 있습니다.

package main

import (
	"fmt"
	"os"
)

func main() {
	wd, err := os.Getwd()
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("Current working directory:", wd)
}

상대적인 경로 변환

이제 상대적인 경로를 변환하는 예제를 살펴보겠습니다. Go 언어에서는 path/filepath 패키지를 사용하여 상대적인 경로를 변환할 수 있습니다.

package main

import (
	"fmt"
	"path/filepath"
)

func main() {
	absPath, err := filepath.Abs("/Users/johndoe/Documents/example.txt")
	if err != nil {
		fmt.Println(err)
		return
	}

	wd, err := os.Getwd()
	if err != nil {
		fmt.Println(err)
		return
	}

	relPath, err := filepath.Rel(wd, absPath)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("Relative path:", relPath)
}

위 예제에서는 먼저 절대 경로를 구한 후, 현재 작업 디렉토리와의 상대적인 경로를 구합니다. 이를 통해 다른 위치에 있는 파일에 대한 상대적인 경로를 쉽게 얻을 수 있습니다.

결론

Go 언어에서는 path/filepath 패키지를 활용하여 상대적인 경로를 구할 수 있습니다. 현재 작업 디렉토리를 확인하고, Rel 함수를 사용하여 절대 경로를 상대적인 경로로 쉽게 변환할 수 있습니다.

참고 자료