Browse Source

更新读取文件的方式

master
xyiege 5 months ago
parent
commit
ff94e33479
  1. 2
      aufs/core/AuFile.go
  2. 4
      aufs/core/dtmem.go
  3. 70
      scagent/core/JsonRpc.go

2
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 {

4
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 {

70
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 {
// 打印所有文件路径

Loading…
Cancel
Save