每隔2分钟在ruby中的指定文件夹中读取扩展名为.txt的任何文件

时间:2017-11-30 15:12:16

标签: ruby

每两分钟,我想阅读一个文件夹中的所有文件(例如C:\folder\),其扩展名为.txt

我不知道每个文件的名称,因为它们是随机的。

阅读之后删除文件会很方便,以免超载。

有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

Dir.foreach('/path-to-your-files') do |item| 
  next unless File.extname(item) == '.txt'
  next if File.directory? item
  file = File.read(item)
  # do what you want with the file
  File.delete(item) if File.exist?(item)
end

正如@engineersmnky所说,您可以使用Dir.glob进行一些简化,例如:

Dir.glob('/path/to/files/*.txt') do
  # the rest, without the code to skip irrelevant files
end

那应该做你想要的。让我知道你是如何上场的!

编辑 - 要每两分钟执行一次,您将不得不使用重复出现的作业。对不起,在写这个问题时我心不在焉,现在我得走了。希望别人能在我离开的时候报道这个,当我回到网上时我会删除/更新!

要对此进行更新 - 每两分钟运行一次的最佳方法是使用cron任务,而whatever gem使这变得轻而易举。设置完成后,您可以使用,例如:

every 2.minutes do
  # run the code above
end