2015-11-11 135 views
0

創建的文件我的目錄結構如下:寫入到由紅寶石

../../../../../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

File#open不處理*Dir#[]那樣。您需要傳遞確切的文件路徑。

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

正是。請注意'File.new'也是無關緊要的。只需將'File.join(dir,'myfile.txt')'替換爲上述代碼中的「路徑」即可。 –