今天来讲一个Go语言操作文件的问题,即如何遍历一个文件夹下的所有文件。
代码如下
package main
import (
"path/filepath"
"os"
"fmt"
"flag"
)
func getFilelist(path string) {
err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
}
if f.IsDir() {
return nil
}
println(path)
return nil
})
if err != nil {
fmt.Printf("filepath.Walk() returned %v\n", err)
}
}
func main(){
flag.Parse()
root := flag.Arg(0)
getFilelist(root)
}
然后对如下package文件夹遍历
接下来执行go run filewalk.go package,得到的结果如下
这样的就得到了一个文件夹下面所有的子文件,然后就可以通过os.Open()打开并读写了。