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

How to write a file in specific path in ruby

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

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

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

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

您的代码有多个错误。您是否尝试过执行脚本?

您的脚本以:

结尾
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