Julia中如何仅列出目录的子目录?代码无输出求助
解决Julia中列出父目录子目录无输出的问题
嘿,我一眼就看出问题所在啦!你的代码里有个容易踩的小坑:readdir(parent_dir) 默认返回的是目标目录下子项的纯名称(不是完整路径),而你用 isdir(x) 判断时,它会在当前工作目录(不是你指定的 parent_dir)里找这个 x,自然就找不到对应的目录,过滤后结果为空,所以没输出~
给你两种修正方案,选哪种都可以:
方案一:用 readdir 的 join 关键字参数(更简洁)
直接让 readdir 返回完整路径,这样 isdir 就能正确判断了:
parent_dir = "/path/to/parent/folder" # 用 join=true 让 readdir 返回完整路径 dirs = filter(x -> isdir(x), readdir(parent_dir; join=true)) for dir in dirs # 如果只想打印目录名称(不是完整路径),可以用 basename(dir) println(basename(dir)) # 要是想打印完整路径,直接 println(dir) 就行 end
方案二:手动拼接完整路径
如果你不想用 join 参数,就手动把父目录和子项名称拼起来再判断:
parent_dir = "/path/to/parent/folder" # 遍历每个子项,拼接完整路径后判断是否为目录 dirs = [x for x in readdir(parent_dir) if isdir(joinpath(parent_dir, x))] for dir in dirs println(dir) # 这里输出的就是目录的纯名称 end
小提示
你可以先单独运行 readdir(parent_dir) 看看返回的内容,确认是不是你预期的子目录名称,这样能更快排查问题哦~
内容的提问来源于stack exchange,提问作者AVA
相关产品推荐
相关产品推荐

