我想遍历目录中的每个子目录(不需要深入迭代)并在每个子目录中创建一个文件。
例如:
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
,我只需要文件的内容和文件大小是随机的。
再次感谢您的帮助!
答案 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