[Go] 특정 디렉터리의 파일 일람을 차례로 가져옵니다.
dir/
디렉터리에 있는 파일의 일람을 차례로 가져옵니다.$ tree
.
├── dir
│ ├── AAA
│ │ ├── BBB
│ │ │ └── bbb.txt
│ │ └── aaa.txt
│ └── CCC
│ └── ccc.txt
└── main.go
샘플 코드
path/filepath
가방을 사용하는 Walk()
는 매우 쉽게 실현할 수 있다.첫 번째 파라미터에서 파일을 일람하는 디렉터리 경로를 지정하고, 두 번째 파라미터에서 각 파일이나 디렉터리의 정보를 받아들이는 호출 함수를 지정합니다.
호출 함수
os.FileInfo
까지 전달되기 때문에 파일에 대한 자세한 정보를 얻으려면 이것을 사용할 수 있습니다.main.go
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
err := filepath.Walk("dir", func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 特定のディレクトリを無視したい場合は `filepath.SkipDir` を返す
// 例えば `AAA` という名前のディレクトリを無視する場合は以下のようにする
// if info.IsDir() && info.Name() == "AAA" {
// return filepath.SkipDir
// }
fmt.Printf("path: %#v\n", path)
return nil
})
if err != nil {
panic(err)
}
}
출력 예$ go run main.go
path: "dir"
path: "dir/AAA"
path: "dir/AAA/BBB"
path: "dir/AAA/BBB/bbb.txt"
path: "dir/AAA/aaa.txt"
path: "dir/CCC"
path: "dir/CCC/ccc.txt"
참고 자료
Reference
이 문제에 관하여([Go] 특정 디렉터리의 파일 일람을 차례로 가져옵니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kou_pg_0131/articles/go-list-files-recursively텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)