diff --git a/scagent/core/JsonRpc.go b/scagent/core/JsonRpc.go index fb1670c..7f44b69 100644 --- a/scagent/core/JsonRpc.go +++ b/scagent/core/JsonRpc.go @@ -5,7 +5,6 @@ import ( "fmt" "os" "path/filepath" - "runtime" "scagent/util" "go.uber.org/zap" @@ -44,8 +43,8 @@ func (f *FileRpcService) GetFilePath(args *Args, replay *string) error { logger := util.NewProductionLogger() defer logger.Sync() // 并发处理 - go scanFileUnderPath(args.FilePath, args.Scope, logger, replay) - runtime.Gosched() + scanFileUnderPath(args.FilePath, args.Scope, logger, replay) + // runtime.Gosched() // return nil } @@ -54,11 +53,10 @@ func (f *FileRpcService) GetFilePath(args *Args, replay *string) error { func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay *string) { var flplist FlpList // 文件列表 - // 遍历目录下的文件 - var allFiles []string // 存储所有文件路径 - // 遍历所有的文件,时间长 if scope == "all" { + // 遍历目录下的文件 + var allFiles []string // 存储所有文件路径 // 递归遍历目录及其子目录 err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { // 处理遍历过程中的错误(如权限不足) @@ -87,14 +85,17 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay // 加入到列表 hash := util.CalacHash(file) // 文件大小 - fsize := fmt.Sprintf("%.2f KB", d.Size()/1024) + fsize := fmt.Sprintf("%.2f KB", float64(d.Size())/1024) flplist.Flist = append(flplist.Flist, FloopJson{Path: file, Size: fsize, Hash: hash}) } } // 遍历对一个的目录 if scope == "dir" { + fmt.Printf("目录路径: %s\n", rootDir) // 遍历目录下的文件 finfo, err := os.Stat(rootDir) + // fmt.Printf("目录信息: %v\n", finfo) + if err != nil { logger.Error("获取目录信息出错", zap.Error(err)) } @@ -104,30 +105,39 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay if err != nil { logger.Error("读取目录出错", zap.Error(err)) } + // fmt.Printf("目录下的文件: %v\n", files) for _, file := range files { + // 拼装路径 + realpath := filepath.Join(rootDir, file.Name()) // fmt.Printf("文件路径: %s\n", file.Name()) - fileinfo, err := os.Stat(file.Name()) + fileinfo, err := os.Stat(realpath) + // fmt.Printf("文件信息: %v\n", fileinfo) + if err != nil { logger.Error("获取文件信息出错", zap.Error(err)) - continue } + var fsize string + fsize = "0kb" + + // if file.IsDir() { fsize = "0" } else { fsize = fmt.Sprintf("%d", fileinfo.Size()) } // 加入到列表 - hash := util.CalacHash(file.Name()) + hash := util.CalacHash(realpath) flplist.Flist = append(flplist.Flist, FloopJson{Path: filepath.Join(rootDir, file.Name()), Size: fsize, Hash: hash}) // allFiles = append(allFiles, filepath.Join(rootDir, file.Name())) } - } - // 遍历文件 + } else { + ssize := fmt.Sprintf("%.2f KB", float64(finfo.Size())/1024) + flplist.Flist = append(flplist.Flist, FloopJson{Path: rootDir, Size: ssize, Hash: util.CalacHash(rootDir)}) + } } - // // 将文件列表转换为json字符串 @@ -135,6 +145,7 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay if err != nil { logger.Error("转换为json字符串出错", zap.Error(err)) } + // fmt.Printf("json字符串: %s\n", jsonStr) // 执行结果存到replay *replay = string(jsonStr)