我试图测试从代码生成的文件的内容.问题是文件的全名基于时间戳abc123_#{d.strftime('%Y%m%d%I%M%S')}.log
我怎么能File用来找到这个文件并阅读它?我尝试File.exists?()使用正则表达式作为参数,但这不起作用.
我在stackoverflow上的另一个问题中发现了这个:
File.basename(file_path).match(/_.*(css|scss|sass)/)
在文件位于我的public文件夹中的情况下,我如何能够使用它?
回答
所以下面的两个答案都起作用,我使用它们的组合.
Dir['public/*.log'].select { |f| f =~ /purge_cc_website/}
该*作为通配符是那种本身就是一个正则表达式.之后,您使用实际的正则表达式过滤数组.
Bob*_*ski 22
Dir[] 接受一个文件全局,如果你的模式不是太复杂,你可以这样做:
Dir['public/abc123_*.log']
Run Code Online (Sandbox Code Playgroud)
更多水珠信息在这里.
Bra*_*ncy 14
File用于读取一个文件.您需要使用Dir按名称查找文件.
files = Dir['*'].select {|x| x =~ /_.*(css|scss|sass)/ }
Run Code Online (Sandbox Code Playgroud)
如果您只想要复制的最后一个文件:
files = Dir['*'].select {|x| x =~ /_.*(css|scss|sass)/ }.sort.last
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12412 次 |
| 最近记录: |