主函数:
1//传递一个string类型,在这里我们传入需要扫描的路径
2func getFilelist(path string){
3 //package_name:path/filepath
4 //go doc filepath.Walk 查看这个函数的文档
5 err:=filepath.Walk(path,func (path string,f os.FileInfo,err error) error {
6 //如果f等于空,返回err错误
7 if (f==nil){return err}
8 //func IsDir() bool // abbreviation for Mode().IsDir()
9 if f.IsDir(){return nil}
10 println(path)
11 return nil
12 })
13 if err!=nil{
14 fmt.Printf("filepath.Walk() returned %v\n",err)
15 }
16}
main入口函数:
flag-命令行参数解析
在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。如果命令行参数纯粹自己写代码解析,对于比较复杂的,还是挺费劲的。在 go 标准库中提供了一个包:flag,方便进行命令行解析
注:区分几个概念
- 命令行参数(或参数):是指运行程序提供的参数
- 已定义命令行参数:是指程序中通过flag.Xxx等这种形式定义了的参数
- 非flag(non-flag)命令行参数(或保留的命令行参数):后文解释
1func main(){
2 flag.Parse()
3 root := flag.Arg(0)
4 getFilelist(root)
5}
运行实例:
1go run filepath.go f:\
2...