diff --git a/protobuf/main/main.go b/protobuf/main/main.go index 510fb23..de10565 100644 --- a/protobuf/main/main.go +++ b/protobuf/main/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "io/fs" "log" "os" "os/exec" @@ -25,23 +26,25 @@ func main() { } } -// 获取指定文件夹下的所有proto文件的绝对路径列表 +// 获取指定文件夹下的所有proto文件的绝对路径 func getProtoFiles() []string { var protoFiles []string - files, err := os.ReadDir(protoFolder) + err := filepath.WalkDir(protoFolder, func(path string, d fs.DirEntry, err error) error { + if !d.IsDir() { + protoFiles = append(protoFiles, path) + } + return err + }) if err != nil { - log.Fatal("获取proto文件列表失败") - } - for _, file := range files { - protoFiles = append(protoFiles, file.Name()) + log.Fatal("获取proto文件列表失败:", err) } return protoFiles } // 编译proto文件为Go文件 func compileProto(protoFiles []string) error { - for _, protoFile := range protoFiles { - cmd := exec.Command(protocPath, "--proto_path="+protoFolder, "--go_out=./", protoFile) + for _, fileName := range protoFiles { + cmd := exec.Command(protocPath, "-I="+protoFolder, "--go_out=./", fileName) fmt.Println(cmd.String()) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr