Go 파일 목록 조회

1 개요[ | ]

Go 파일 목록 조회

2 일반[ | ]

2.1 파일+디렉토리 조회[ | ]

package main

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

func main() {
	files, err := ioutil.ReadDir("/lib/")
	if err != nil {
		log.Fatal(err)
	}
	for _, file := range files {
		fmt.Println(file.Name())
	}
}

2.2 파일만 조회[ | ]

package main

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

func main() {
	files, err := ioutil.ReadDir("/lib/")
	if err != nil {
		log.Fatal(err)
	}
	for _, file := range files {
		if file.IsDir() {
			continue
		}
		fmt.Println(file.Name())
	}
}

3 재귀[ | ]

3.1 파일+디렉토리 조회[ | ]

package main

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

func main() {
	filelist := []string{}
	err := filepath.Walk("/lib/",
		func(path string, info os.FileInfo, err error) error {
			if err != nil {
				return err
			}
			filelist = append(filelist, path)
			return nil
		})
	if err != nil {
		log.Println(err)
	}
	fmt.Println(filelist)
}

3.2 파일만 조회[ | ]

package main

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

func main() {
	filelist := []string{}
	err := filepath.Walk("/lib/",
		func(path string, info os.FileInfo, err error) error {
			if err != nil {
				return err
			}
			if !info.IsDir() {
				filelist = append(filelist, path)
			}
			return nil
		})
	if err != nil {
		log.Println(err)
	}
	fmt.Println(filelist)
}

3.3 특정 확장자만 조회[ | ]

package main

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

func main() {
	filelist := []string{}
	err := filepath.Walk("/lib/",
		func(path string, info os.FileInfo, err error) error {
			if err != nil {
				return err
			}
			if !info.IsDir() && filepath.Ext(info.Name()) == ".1" {
				filelist = append(filelist, path)
			}
			return nil
		})
	if err != nil {
		log.Println(err)
	}
	fmt.Println(filelist)
}

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}