文件夾遍歷可以使用filepath.Walk(root string, walkFn filepath.WalkFunc) error
來實現(xiàn)哼鬓,非常方便,root
可以是文件夾的絕對路徑
也可以是文件的絕對路徑
,但是通常使用文件夾
稠诲,對文件
來說英岭,遍歷沒有意義。
新建文件traversalFolder.go
// traversalFolder.go
package main
import (
"fmt"
"os"
"path/filepath"
)
func walkFunc(path string, info os.FileInfo, err error) error {
if info == nil {
// 文件名稱超過限定長度等其他問題也會導致info == nil
// 如果此時return err 就會顯示找不到路徑睡陪,并停止查找。
println("can't find:(" + path + ")")
return nil
}
if info.IsDir() {
println("This is folder:(" + path + ")")
return nil
} else {
println("This is file:(" + path + ")")
return nil
}
}
func showFileList(root string) {
err := filepath.Walk(root, walkFunc)
if err != nil {
fmt.Printf("filepath.Walk() error: %v\n", err)
}
return
}
在main.go
中可以調用
// FileRW project main.go
package main
import (
"fmt"
)
func main() {
var path string
fmt.Println("請輸入想要遍歷的路徑:")
fmt.Scanf("%s", &path)
fmt.Println("=====")
// path = "D:\\精通windows server 2008 R2.pdf"
showFileList(path)
}