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

如何在FoxPro中遍历指定起始目录下的嵌套目录

FoxPro 递归遍历目录并输出文件/目录名称及修改日期

以下是实现递归遍历指定目录、输出所有子目录/文件名及最后修改日期的FoxPro代码,完全适配多层嵌套场景,同时处理空目录的标注:

PROCEDURE TraverseDirectory
    LPARAMETERS tcStartPath
    LOCAL laDirInfo[1], lnCount, i, lcFullPath, lcModDate

    * 确保路径末尾带反斜杠,避免拼接错误
    IF RIGHT(tcStartPath, 1) != "\"
        tcStartPath = tcStartPath + "\"
    ENDIF

    * 获取当前目录下所有文件和子目录信息
    lnCount = ADIR(laDirInfo, tcStartPath + "*.*", "DHS")
    * ADIR参数说明:"D"包含目录,"H"包含隐藏文件,"S"包含系统文件(可按需调整)

    IF lnCount = 2
        * 当前目录仅含.和..,判定为空目录
        ? ALLTRIM(SUBSTR(tcStartPath, 1, LEN(tcStartPath)-1)) + "(内部无内容)"
        RETURN
    ENDIF

    * 遍历每一个条目
    FOR i = 1 TO lnCount
        * 跳过.和..目录
        IF laDirInfo[i, 1] = "." OR laDirInfo[i, 1] = ".."
            LOOP
        ENDIF

        lcFullPath = tcStartPath + laDirInfo[i, 1]
        * 格式化最后修改日期
        lcModDate = DTOS(laDirInfo[i, 3]) + " " + TTOC(laDirInfo[i, 3])

        IF laDirInfo[i, 5] = "D"
            * 是子目录,先输出目录名和修改日期
            ? laDirInfo[i, 1] + " | 修改日期:" + lcModDate
            * 递归遍历子目录
            DO TraverseDirectory WITH lcFullPath
        ELSE
            * 是文件,输出文件名和修改日期
            ? laDirInfo[i, 1] + " | 修改日期:" + lcModDate
        ENDIF
    ENDFOR
ENDPROC

* 调用示例:替换为你的起始路径
DO TraverseDirectory WITH "C:\Your\Target\Directory"

代码说明:

  • 递归逻辑:通过DO TraverseDirectory WITH lcFullPath实现多层目录的深度遍历,自动处理嵌套结构。
  • ADIR()函数:核心工具,一次性获取当前目录的所有文件/目录信息,返回的数组包含名称、大小、修改日期、属性等字段。
  • 空目录判断:当ADIR仅返回.和..两个条目时,判定为空目录并输出对应标注。
  • 日期格式化:用DTOS()和TTOC()将ADIR返回的日期时间值转换为易读的字符串格式。

输出示例(匹配你的需求):

假设起始目录结构如你描述,运行后会输出类似内容:

appendix | 修改日期:20240520 14:30:00
a1 | 修改日期:20240520 14:31:00
a1text.txt | 修改日期:20240520 14:32:00
a2 | 修改日期:20240520 14:33:00
a2text.txt | 修改日期:20240520 14:34:00
aTotal.txt | 修改日期:20240520 14:35:00
index(内部无内容)
names | 修改日期:20240520 14:36:00
allnames.txt | 修改日期:20240520 14:37:00

如果需要将结果保存到文件,可在调用前执行:

SET ALTERNATE TO "目录遍历结果.txt"
SET ALTERNATE ON

结束遍历后执行:

SET ALTERNATE OFF

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:25:18