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

Ruby实现:删除指定目录中早于X天的所有文件

实现仅删除早于X天的CSV文件

要实现这个需求,核心是先计算出X天前的时间节点,再遍历目录筛选出符合条件的文件后删除,具体代码如下:

require 'fileutils'

# 定义要保留的天数,比如保留最近7天的文件
x_days = 7
# 计算截止时间:当前时间减去X天的秒数
cutoff_time = Time.now - (x_days * 24 * 60 * 60)

# 遍历reports目录下所有CSV文件(仅一级目录)
Dir.glob("reports/*.csv").each do |file|
  # 获取文件的最后修改时间
  file_modified_time = File.mtime(file)
  # 判断是否早于截止时间,是则删除
  if file_modified_time < cutoff_time
    FileUtils.rm_rf(file, secure: true)
  end
end

额外说明

  • 如果需要递归删除子目录中的CSV文件,把Dir.glob的路径改成"reports/**/*.csv"
  • 若要基于文件创建时间判断(注意:Linux系统下File.ctime是文件状态变更时间,Windows下才是创建时间),替换File.mtime为File.ctime
  • 保留secure: true参数可以避免误删符号链接指向的目录,维持原有的安全校验逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:32:36