You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia中readdir存在目录但isdir过滤结果为空的问题排查

问题根因

readdir默认返回的是目标目录下条目对应的裸文件名/文件夹名,不会自动拼接你传入的目录路径。你执行filter(isdir, readdir("data/"))时,isdir实际校验的是当前工作目录下的同名路径,根本不是data/文件夹里的对应条目。
你之前单独测试时手动补了完整路径,执行isdir("data/SST4Fj1_7d384.result")能得到true,但过滤流程里传给isdir的参数是没有前缀的"SST4Fj1_7d384.result",等价于执行isdir("SST4Fj1_7d384.result")——当前工作目录下不存在这个条目,判断结果自然是false,所有条目都被过滤掉,最终返回空数组。

修复方案

根据你需要的返回格式选对应写法即可:

  • 如果希望过滤结果直接返回可直接使用的完整路径,给readdir加join=true参数,让返回值自动拼接目录前缀:
    # 返回结果示例:["data/SST4Fj1_7d384.result"]
    filter(isdir, readdir("data/"; join=true))
    
  • 如果希望过滤结果保留裸文件名格式(和readdir默认返回格式一致),手动拼接路径再做判断:
    # 返回结果示例:["SST4Fj1_7d384.result"]
    filter(name -> isdir(joinpath("data", name)), readdir("data/"))
    

内容的提问来源于stack exchange,提问作者Aephir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:27:31