Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将ruby代码的输出文件写入特定的目录/位置?_Ruby - Fatal编程技术网

如何将ruby代码的输出文件写入特定的目录/位置?

如何将ruby代码的输出文件写入特定的目录/位置?,ruby,Ruby,我有ruby代码,它将创建输出文件,当前文件正在脚本运行的位置创建。 我必须将输出文件写入不同的位置,所以我要在代码中指定显式路径。但它无法创建文件。我的代码如下所示: fname = "C:\repo\cookbooks\abc\recipes\add.rb" somefile = File.open(fname,"w") somefile.puts "end" somefile.close 如果我指定 fname = "add.rb" 它正在工作,但我想在不同的位置创建它,正如我在C

我有ruby代码,它将创建输出文件,当前文件正在脚本运行的位置创建。 我必须将输出文件写入不同的位置,所以我要在代码中指定显式路径。但它无法创建文件。我的代码如下所示:

fname = "C:\repo\cookbooks\abc\recipes\add.rb"
somefile = File.open(fname,"w")  
somefile.puts "end"
somefile.close
如果我指定

fname = "add.rb"

它正在工作,但我想在不同的位置创建它,正如我在C:\drive中提到的代码。

因为字符串中的
\
是特殊字符,所以应该使用
\
(双反斜杠)来获得单个反斜杠。但是有一个更好的方法,你根本不需要处理反斜杠:

fname = File.join("C:", "repo", "cookbooks", "abc", "recipes", "add.rb")

据我所知,您也可以使用
/
,它将自动转换,或者您可以使用单引号来完全避免问题。是的,还有其他方法:)特别是,
\r
是回车。