例如有以下路径:

root@node1:/tmp/zz# tree /tmp/oss/
/tmp/oss/
└── unsealed
    ├── s-t01003-100
    ├── s-t01003-1000
    ├── s-t01003-74
    └── s-t01003-75

2 directories, 3 files
root@node1:/tmp/zz# 

遍历指定目录:

package main

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

const (
	DIRS= "/tmp/oss/"
)

func main() {
	fmt.Println("vim-go")
	filepath.Walk(DIRS,
		func(path string, f os.FileInfo, err error) error {
			if f == nil {
				return err
			}
			if f.IsDir() {
				fmt.Println("dir:", path)
				return nil
			}
			fmt.Println("file:", path, filepath.Base(path))
			sid := "s-t01003-74"
			if filepath.Base(path) == sid {
				fmt.Println("upload path:", path)
			}

			return nil
		})
}

执行结果:

root@node1:/tmp/zz# go run main.go 
vim-go
dir: /tmp/oss/
dir: /tmp/oss/unsealed
file: /tmp/oss/unsealed/s-t01003-100 s-t01003-100
dir: /tmp/oss/unsealed/s-t01003-1000
file: /tmp/oss/unsealed/s-t01003-74 s-t01003-74
upload path: /tmp/oss/unsealed/s-t01003-74
file: /tmp/oss/unsealed/s-t01003-75 s-t01003-75
root@node1:/tmp/zz#