我有一个Ruby脚本,它设置了一个目录,我需要一些其他方法来存储文件。所以,我需要能够将目录作为字符串传递给其他一些方法:
创建目录
results_dir = Dir.mkdir("/results/#{Time.now.strftime('%m-%d-%Y_%H:%M:%S')}")
问题是results_dir
返回0
,而不是我对目录所期望的字符串:“/ results / 01-18-2016_14:58:38”
所以,当我尝试将其传递给另一种方法(即my_method(var1, var2, results_dir)
时,它将其读作:
0/the_file_i_create
如何将实际目录路径传递给我的方法?
答案 0 :(得分:1)
目前尚不清楚为什么期望Dir.mkdir
返回目录名称,因为the docs明确表示Dir.mkdir
返回0
:
mkdir(string [,integer])→0
如果您需要创建目录的名称,请在致电Dir.mkdir
之前将其放入变量中:
results_dir = "/results/#{Time.now.strftime('%m-%d-%Y_%H:%M:%S')}"
Dir.mkdir(results_dir)
puts results_dir # => /results/01-18-2016_14:58:38
P.S。避免在文件和目录名称中使用冒号(:
)。它可能会导致某些系统出现问题,包括OS X和Windows。