在每个子目录中创建一个文件

时间:2015-10-08 11:33:53

标签: ruby file-io

我想遍历目录中的每个子目录(不需要深入迭代)并在每个子目录中创建一个文件。

例如:

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 个答案:

答案 0 :(得分: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