每两分钟,我想阅读一个文件夹中的所有文件(例如C:\folder\
),其扩展名为.txt
。
我不知道每个文件的名称,因为它们是随机的。
阅读之后删除文件会很方便,以免超载。
有谁知道如何做到这一点?
答案 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