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

在Nim语言中如何列出指定目录下的所有内容条目

Nim目录内容列举实现方案

Nim 标准库的os模块已经内置了完整的目录遍历功能,不存在功能未实现的情况,你可以通过以下两种常用方式完成/home/username/Documents/路径下的内容列举:

方法1:使用walkDir迭代器统一遍历所有条目

该方法可以一次遍历目标目录下的所有一级条目,自动区分文件、目录、软链接类型:

import os

proc main() =
  # expandTilde用于解析路径中的~为用户家目录绝对路径
  let targetDir = expandTilde("/home/username/Documents/")
  
  # 校验目录是否存在
  if not dirExists(targetDir):
    echo "目标目录不存在"
    return

  for entry in walkDir(targetDir):
    case entry.kind
    of pcFile:
      echo "文件:", entry.name
    of pcDir:
      echo "目录:", entry.name
    of pcLinkToFile, pcLinkToDir:
      echo "软链接:", entry.name

when isMainModule:
  main()

如果需要递归遍历所有子目录下的内容,将walkDir替换为walkDirRec即可。

方法2:分别获取目录和文件列表

如果需要单独提取子目录和文件的集合,可以直接调用listDirs和listFiles方法:

import os

proc main() =
  let targetDir = expandTilde("/home/username/Documents/")
  if not dirExists(targetDir):
    echo "目标目录不存在"
    return

  # 输出所有一级子目录
  echo "=== 子目录列表 ==="
  for dir in listDirs(targetDir):
    echo dir

  # 输出所有一级文件
  echo "\n=== 文件列表 ==="
  for file in listFiles(targetDir):
    echo file

when isMainModule:
  main()
  • 上述所有方法默认都只遍历目标目录的一级内容,不需要递归无需额外配置
  • 路径如果不包含~可以直接传绝对路径,不需要调用expandTilde处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:15:05