如何在ruby中的特定路径中编写文件

时间:2015-09-30 17:51:51

标签: ruby file dir

我想将文件保存在特定路径中.. 我用过这样的

file_name = gets 
F = open.(Dir.pwd, /data/folder /#{@file_name },w+)

我不确定上述行是否正确!其中Dir.pwd告诉目录路径后跟我的文件夹路径和给定的文件名。

它应该将值存储在具有给定特定文件名的特定路径上。谁能告诉我怎么做。

1 个答案:

答案 0 :(得分:2)

您的代码有多处错误。你有没有试过执行这个脚本?

您的脚本以:

结束
test.rb:7: unknown regexp options - fldr
test.rb:7: syntax error, unexpected end-of-input
    F = open.(Dir.pwd, /data/folder /#{@file_name },w+)

首先:您需要使用'"定义字符串:

file_name = gets 
F = open.(Dir.pwd, "/data/folder/#{@file_name}","w+")

其他一些错误:

  • 您使用file_name及更晚@file_name
  • open方法属于File,需要两个参数。
  • 该文件被定义为常量F。我会使用变量。
  • 必须连接路径。我将File.join用于此。
  • 您不会关闭该文件。

完成所有这些更改后,您将获得:

file_name = gets
f = File.open(File.join(Dir.pwd, "/data/folder/#{file_name}"),"w+")
##
f.close

和错误:

  test.rb:29:in `initialize': No such file or directory @ rb_sysopen - C:/Temp/data/folder/sdssd (Errno::ENOENT)

该文件夹必须存在,因此您必须先创建它。

现在脚本如下:

require 'fileutils'
dirname = "data/folder"
file_name = gets.strip
FileUtils.mkdir_p(dirname) unless Dir.exists?(dirname)
f = File.open(File.join(Dir.pwd, dirname, file_name),"w+")
##fill the content
f.close