首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何递归地查找DolphinDB目录中的所有文件?

问如何递归地查找DolphinDB目录中的所有文件?
EN

Stack Overflow用户
提问于 2022-11-08 01:15:01
回答 1查看 17关注 0票数 2

DolphinDB函数files只能列出当前目录下的所有文件,并且文件名不是完整路径。我如何列出目录中所有具有.gz扩展名的文件,就像Linux find命令一样?

代码语言:javascript
复制
[xjqian@k8s-2 ~]$ find ./ -name "*.gz"
./cmake-3.12.3.tar.gz
./mongoose/test/data/hello.txt.gz
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-09 01:24:22

您可以定义如下函数:

代码语言:javascript
复制
def findR(path, pattern=NULL){
    t = files(path)
    if (isValid(pattern)){
        t = files(path, pattern)
    }
    res = select * from t where !isDir
    update res set res.filename = path +"/" + res.filename
    for (f in select * from files(path) where !!isDir){
        try {
            subRes =  findR(path+"/"+f.filename, pattern)
            res.append!(subRes)
        } catch(ex){
            print("ex:"+path+"/"+f.filename+ string(f.isDir))
        }
    }
    return res
}

例如:

代码语言:javascript
复制
findR("c:/tmp", pattern="%.log")

产出:

代码语言:javascript
复制
filename            isDir   fileSize    lastAccessed    lastModified
c:/tmp/controller.log   false   543,619,626 2022.05.14T09:09:52.405 2022.05.14T06:04:22.000
c:/tmp/P1-node1.log false   729,729,122 2022.05.14T09:10:05.156 2022.05.14T05:44:13.000
c:/tmp/bd/Output.log    false   44,088          2022.04.03T12:30:56.523 2022.04.03T12:30:56.523
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74354681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档