|
|
|
@ -39,7 +39,6 @@ type FlpList struct { |
|
|
|
|
|
|
|
// 获取文件路径
|
|
|
|
func (f *FileRpcService) GetFilePath(args *Args, replay *string) error { |
|
|
|
|
|
|
|
// 启用日志
|
|
|
|
logger := util.NewProductionLogger() |
|
|
|
defer logger.Sync() |
|
|
|
@ -57,28 +56,50 @@ func scanFileUnderPath(rootDir string, scope string, logger *zap.Logger, replay |
|
|
|
// 遍历目录下的文件
|
|
|
|
var allFiles []string // 存储所有文件路径
|
|
|
|
|
|
|
|
// 递归遍历目录及其子目录
|
|
|
|
err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { |
|
|
|
// 处理遍历过程中的错误(如权限不足)
|
|
|
|
// 遍历所有的文件,时间长
|
|
|
|
if scope == "all" { |
|
|
|
// 递归遍历目录及其子目录
|
|
|
|
err := filepath.WalkDir(rootDir, func(path string, d os.DirEntry, err error) error { |
|
|
|
// 处理遍历过程中的错误(如权限不足)
|
|
|
|
if err != nil { |
|
|
|
logger.Error("访问路径出错", zap.Error(err)) |
|
|
|
// 判断扫描范围
|
|
|
|
if scope == "all" { |
|
|
|
return filepath.SkipDir |
|
|
|
} else { |
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 只收集文件(排除目录)
|
|
|
|
if !d.IsDir() { |
|
|
|
allFiles = append(allFiles, path) |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
// 打印错误日志
|
|
|
|
if err != nil { |
|
|
|
logger.Error("访问路径出错", zap.Error(err)) |
|
|
|
// 判断扫描范围
|
|
|
|
if scope == "all" { |
|
|
|
return filepath.SkipDir |
|
|
|
} else { |
|
|
|
return nil |
|
|
|
logger.Error("遍历目录出错", zap.Error(err)) |
|
|
|
} |
|
|
|
} |
|
|
|
// 遍历对一个的目录
|
|
|
|
if scope == "dir" { |
|
|
|
// 遍历目录下的文件
|
|
|
|
finfo, err := os.Stat(rootDir) |
|
|
|
if err != nil { |
|
|
|
logger.Error("获取目录信息出错", zap.Error(err)) |
|
|
|
} |
|
|
|
// 遍历目录下的文件
|
|
|
|
if finfo.IsDir() { |
|
|
|
files, err := os.ReadDir(rootDir) |
|
|
|
if err != nil { |
|
|
|
logger.Error("读取目录出错", zap.Error(err)) |
|
|
|
} |
|
|
|
for _, file := range files { |
|
|
|
allFiles = append(allFiles, filepath.Join(rootDir, file.Name())) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 只收集文件(排除目录)
|
|
|
|
if !d.IsDir() { |
|
|
|
allFiles = append(allFiles, path) |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
// 打印错误日志
|
|
|
|
if err != nil { |
|
|
|
logger.Error("遍历目录出错", zap.Error(err)) |
|
|
|
} |
|
|
|
|
|
|
|
//
|
|
|
|
|