階層のディレクトリを一度に作成するには
「たのしいRuby」を読んだら答えが書いてあった。
結局Dir.mkdirを使って階層のあるディレクトリを一度に作成することはできないらしい。
Web上のサンプルで
Dir::mkdir("/home/take/tmp")
という記述を見かけたのでできるのかと思っていたのだけれど、この記述は/home/takeが既に存在することを前提にしたコードというわけだ。
つまり、/a/b/cというディレクトリを作りたかったら
Dir.mkdir("a") Dir.mkdir("a/b") Dir.mkdir("a/b/c")
という記述しないといけないようだ。でもこれはスマートじゃないよねってことでFile.makedirs(path)というものがあるようだ。これを使うと
require "ftools" File.makedirs("a/b/c")
と書けばできるらしい。早速試してみよう。