Ruby mkdir返回0

时间:2016-01-18 20:06:17

标签: ruby

我有一个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

如何将实际目录路径传递给我的方法?

1 个答案:

答案 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。