2015-10-08 67 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

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

相关问题