Browse Source

更改为实际路径

master
xyiege 5 months ago
parent
commit
93cc08f985
  1. 37
      scagent/core/JsonRpc.go

37
scagent/core/JsonRpc.go

@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"scagent/util" "scagent/util"
"go.uber.org/zap" "go.uber.org/zap"
@ -44,8 +43,8 @@ func (f *FileRpcService) GetFilePath(args *Args, replay *string) error {
logger := util.NewProductionLogger() logger := util.NewProductionLogger()
defer logger.Sync() defer logger.Sync()
// 并发处理 // 并发处理
go scanFileUnderPath(args.FilePath, args.Scope, logger, replay) scanFileUnderPath(args.FilePath, args.Scope, logger, replay)
runtime.Gosched() // runtime.Gosched()
// //
return nil 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) { func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay *string) {
var flplist FlpList // 文件列表 var flplist FlpList // 文件列表
// 遍历目录下的文件
var allFiles []string // 存储所有文件路径
// 遍历所有的文件,时间长 // 遍历所有的文件,时间长
if scope == "all" { if scope == "all" {
// 遍历目录下的文件
var allFiles []string // 存储所有文件路径
// 递归遍历目录及其子目录 // 递归遍历目录及其子目录
err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { 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) 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}) flplist.Flist = append(flplist.Flist, FloopJson{Path: file, Size: fsize, Hash: hash})
} }
} }
// 遍历对一个的目录 // 遍历对一个的目录
if scope == "dir" { if scope == "dir" {
fmt.Printf("目录路径: %s\n", rootDir)
// 遍历目录下的文件 // 遍历目录下的文件
finfo, err := os.Stat(rootDir) finfo, err := os.Stat(rootDir)
// fmt.Printf("目录信息: %v\n", finfo)
if err != nil { if err != nil {
logger.Error("获取目录信息出错", zap.Error(err)) logger.Error("获取目录信息出错", zap.Error(err))
} }
@ -104,30 +105,39 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay
if err != nil { if err != nil {
logger.Error("读取目录出错", zap.Error(err)) logger.Error("读取目录出错", zap.Error(err))
} }
// fmt.Printf("目录下的文件: %v\n", files)
for _, file := range files { for _, file := range files {
// 拼装路径
realpath := filepath.Join(rootDir, file.Name())
// fmt.Printf("文件路径: %s\n", 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 { if err != nil {
logger.Error("获取文件信息出错", zap.Error(err)) logger.Error("获取文件信息出错", zap.Error(err))
continue
} }
var fsize string var fsize string
fsize = "0kb"
//
if file.IsDir() { if file.IsDir() {
fsize = "0" fsize = "0"
} else { } else {
fsize = fmt.Sprintf("%d", fileinfo.Size()) 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}) flplist.Flist = append(flplist.Flist, FloopJson{Path: filepath.Join(rootDir, file.Name()), Size: fsize, Hash: hash})
// allFiles = append(allFiles, filepath.Join(rootDir, file.Name())) // 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字符串 // 将文件列表转换为json字符串
@ -135,6 +145,7 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay
if err != nil { if err != nil {
logger.Error("转换为json字符串出错", zap.Error(err)) logger.Error("转换为json字符串出错", zap.Error(err))
} }
// fmt.Printf("json字符串: %s\n", jsonStr)
// 执行结果存到replay // 执行结果存到replay
*replay = string(jsonStr) *replay = string(jsonStr)

Loading…
Cancel
Save