我的目录结构如下:
../../../../../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
文件是空的?问题在哪里?
答案 0 :(得分:1)
File#open
无法像*
那样处理Dir#[]
。您需要传递确切的文件路径。
Dir['../../../../../TESTS/Test_*/*/'].each do |path|
File.open(path, 'w+') { |f| f.puts "HELLO" }
end