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

如何通过RobotFramework实现删除修改日期早于5天的文件或文件夹?

需求实现方案

问题背景

需要实现删除修改日期早于当前日期5天的文件或文件夹,现有测试用例通过手动设置年份为2022触发删除逻辑,现在要调整为符合实际需求的自动判断逻辑。

核心修改思路

  1. 自动获取当前时间,计算出5天前的时间戳(使用Unix时间戳格式,方便数值比较)
  2. 遍历目标目录下的每个文件/文件夹,获取其修改时间的时间戳
  3. 对比文件修改时间戳与5天前的时间戳,若前者更小则执行删除操作
  4. 替换原代码中Empty Directory(清空整个目录)的危险操作,改用Remove File或Remove Directory删除单个目标

修改后的完整测试用例

*** Settings ***
Library    OperatingSystem
Library    DateTime

*** Test Cases ***
Delete Files Older Than 5 Days
    # 获取当前时间的Unix时间戳(秒)
    ${current_epoch}=    Get Current Date    epoch=seconds
    # 计算5天前的时间戳(5天=5*24*3600秒)
    ${five_days_ago_epoch}=    Evaluate    ${current_epoch} - 5*24*3600

    Log To Console    "当前时间戳: ${current_epoch}"
    Log To Console    "5天前时间戳: ${five_days_ago_epoch}"

    # 遍历目标目录下的所有文件/文件夹(绝对路径)
    ${files}=   List Files In Directory  C:/trydel/ver1    absolute=True
    FOR     ${file}     IN  @{files}
        # 获取文件修改时间的Unix时间戳
        ${modified_epoch}=    Get Modified Time    ${file}    epoch=seconds
        Log To Console    "文件 ${file} 的修改时间戳: ${modified_epoch}"

        # 判断是否早于5天前
        IF  ${modified_epoch} < ${five_days_ago_epoch}
            # 判断是文件还是目录,执行对应删除操作
            Run Keyword If    ${file} is file    Remove File    ${file}
            Run Keyword If    ${file} is directory    Remove Directory    ${file}    recursive=True
            Log To Console    "已删除: ${file}"
        END
    END

关键说明

  • 引入DateTime库辅助时间计算,也可直接用Evaluate做算术运算
  • 使用Unix时间戳(秒数)进行时间比较,比按年/月判断更精准,符合"早于5天"的需求
  • 区分文件和目录,分别用Remove File和Remove Directory(加recursive=True删除非空目录),避免误删整个目标目录
  • 去掉了手动设置的年份变量,改为自动获取当前时间,无需手动干预

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:00:16