写入ruby创建的文件

时间:2015-11-11 13:57:47

标签: ruby-on-rails ruby regex

我的目录结构如下:

../../../../../TESTS/Test_A/myTest_A/
../../../../../TESTS/Test_B/myTest_B/
../../../../../TESTS/Test_C/myTest_C/
../../../../../TESTS/Test_D/myTest_D/

在每个文件中我创建了一个文件" myfile.txt"使用以下ruby代码:

Dir['../../../../../TESTS/Test_*/*/'].each do |dir|
  File.new File.join(dir, 'myfile.txt'), 'w+'
end

到目前为止它的确有效。现在我想在创建后相应地在文件中写入内容,代码现在看起来:

Dir['../../../../../TESTS/Test_*/*/'].each do |dir|
  File.new File.join(dir, 'myfile.txt'), 'w+'
  File.open('../../../../../TESTS/Test_*/*/myfile.txt','w+') do |f| 
    f.puts "HELLO"
  end
end

文件是空的?问题在哪里?

1 个答案:

答案 0 :(得分:1)

File#open无法像*那样处理Dir#[]。您需要传递确切的文件路径。

Dir['../../../../../TESTS/Test_*/*/'].each do |path|
  File.open(path, 'w+') { |f| f.puts "HELLO" }
end