【问题标题】:In ruby, how might I find all Files between two dates在红宝石中,我如何找到两个日期之间的所有文件
【发布时间】:2013-03-27 00:16:26
【问题描述】:

我很惊讶我找不到这个问题的答案,但我需要选择在 Time.now 和 1.day.ago 之间修改的所有文件。显然,在处理 ruby​​ File 或 FileUtil 类时,我并不期望使用“ago”运算符,但如果有人向我展示了一个,我不会感到惊讶。 :)

另一种方式是我认为的数组函数......也许涉及我从未使用过的''运算符

【问题讨论】:

  • 这取决于您考虑的文件的文件结构是什么样的。它们都在一个目录中,还是在不同的目录中,深度多少等。如果它们都在同一个目录中,您是要分析每个文件还是只分析一个特定的文件类型或扩展名?
  • 在这种情况下,它是一个文件名的平面列表

标签: ruby file last-modified


【解决方案1】:

也许是这样的? (未经测试):

selected_files = Dir.glob("*.pdf").select do |file|
  mtime = File.mtime(file)

  # if in a rails environment:
  # (1.day.ago .. Time.now).cover?(mtime)

  # if not in rails environment but want to use that code do this before that line:
  # require 'active_support/all'

  # else do the math:
  # mtime > (Time.now - 86400) and mtime < Time.now
end

【讨论】:

  • 哇不错!我即将发布我的 hack,这看起来很有趣,对其他开发者来说更​​美观
  • @coloradoblue 好了,只搜索 pdf 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
相关资源
最近更新 更多