2015-10-08 68 views
2

我想遍歷目錄中的每個子目錄(無需迭代更深),並在每個子目錄中創建一個文件。在每個子目錄中創建一個文件

例如:

C:\ 
-C:\folder1 
-C:\folder2 
-... 

我想在這些文件夾中的文件時,結束了:

C:\ 
-C:\folder1\file1.txt 
-C:\folder2\file2.txt 
-... 

我試過的代碼是

require 'securerandom' 

array =[] 

IO.foreach('output.txt') { |line| 
    array<<line 
} 

array.each { |folder| 
    randomName = SecureRandom.hex 
    File.open("#{folder}\\#{randomName}.txt", 'wb+') do |f| 
     buffer = ((SecureRandom.hex)*8).freeze 
     randomNumber = (rand 1..9) 
     randomNumber.kilobytes.times { f.write buffer } 
    end 
} 

在哪裏output.txt是一個包含所有我想要的文件夾的完整目錄的文件,以換行符分隔,例如:

output.txt中:

"C:\Users\folder1" 
"C:\Users\folder2" 
... 

至於SecureRandom.hex,我只需要在內容和文件的文件大小是隨機的。

再次感謝您的親切幫助!

+1

你有什麼問題嗎? – AlexN

回答

1

您可以使用此作爲模板:

i = 0 
Dir['c:\*'].each do | subdir | 
    next unless File.directory?(subdir) 
    File.open("#{subdir}/file#{i}.txt", "w") { | io | io << 'foo' } 
    i += 1 
end 
+0

哇,我不知道迪爾[]甚至存在;感謝您的回答!這工作得很好。 –

相關問題