diff --git a/aufs/core/AuFile.go b/aufs/core/AuFile.go index a8c5255..f33bdad 100644 --- a/aufs/core/AuFile.go +++ b/aufs/core/AuFile.go @@ -19,7 +19,7 @@ func Flist(w http.ResponseWriter, r *http.Request) { } // 调用远程方法 var reply string - var args = Args{"/www/wwwroot"} + var args = Args{"/www/wwwroot/fsc.com", "dir"} err = client.Call("FileRpcService.GetFilePath", args, &reply) if err != nil { diff --git a/aufs/core/dtmem.go b/aufs/core/dtmem.go index 2429c29..00bb548 100644 --- a/aufs/core/dtmem.go +++ b/aufs/core/dtmem.go @@ -14,7 +14,7 @@ type Dtm struct { // for rpc type Args struct { - FilePath string + FilePath, Scope string } // 返回的参数 @@ -36,7 +36,7 @@ func Dtmem(w http.ResponseWriter, r *http.Request) { } // 调用远程方法 var reply string - var args = Args{"/www/xt"} + var args = Args{"/www/xt", "all"} err = client.Call("FileRpcService.GetFilePath", args, &reply) if err != nil { diff --git a/scagent/core/JsonRpc.go b/scagent/core/JsonRpc.go index bb20d0f..1898d76 100644 --- a/scagent/core/JsonRpc.go +++ b/scagent/core/JsonRpc.go @@ -10,8 +10,10 @@ import ( ) // 传入的参数 +// scope: all 所有文件 +// scope: dir 目录下的文件 type Args struct { - FilePath string + FilePath, Scope string } // 返回的参数 @@ -43,25 +45,61 @@ func (f *FileRpcService) GetFilePath(args *Args, replay *string) error { var allFiles []string // 存储所有文件路径 var flplist FlpList // 文件列表 - // 递归遍历目录及其子目录 - err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { - // 处理遍历过程中的错误(如权限不足) + // 判断返回 + // 读取所有的 + if args.Scope == "all" { + // 递归遍历目录及其子目录 + err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { + // 处理遍历过程中的错误(如权限不足) + if err != nil { + logger.Error("访问路径出错", zap.Error(err)) + return filepath.SkipDir // 跳过当前目录,继续遍历其他目录 + } + + // 只收集文件(排除目录) + if !d.IsDir() { + allFiles = append(allFiles, path) + } + return nil + }) + // 打印错误日志 if err != nil { - logger.Error("访问路径出错", zap.Error(err)) - return filepath.SkipDir // 跳过当前目录,继续遍历其他目录 + logger.Error("遍历目录出错", zap.Error(err)) + return err } - - // 只收集文件(排除目录) - if !d.IsDir() { - allFiles = append(allFiles, path) + } + // 读取当前的目录 + if args.Scope == "dir" { + // 读取当前的目录 + dirEntries, err := os.ReadDir(rootDir) + if err != nil { + logger.Error("读取目录出错", zap.Error(err)) + return err + } + // 遍历目录下的文件 + for _, entry := range dirEntries { + allFiles = append(allFiles, entry.Name()) } - return nil - }) - - if err != nil { - logger.Error("遍历目录出错", zap.Error(err)) - return err } + // 递归遍历目录及其子目录 + // err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { + // // 处理遍历过程中的错误(如权限不足) + // if err != nil { + // logger.Error("访问路径出错", zap.Error(err)) + // return filepath.SkipDir // 跳过当前目录,继续遍历其他目录 + // } + + // // 只收集文件(排除目录) + // if !d.IsDir() { + // allFiles = append(allFiles, path) + // } + // return nil + // }) + + // if err != nil { + // logger.Error("遍历目录出错", zap.Error(err)) + // return err + // } // 打印所有文件路径 for _, file := range allFiles { // 打印所有文件路径