フォルダの作成

 2011-02-05
フォルダが無かったら作成するって処理で、
path = "./Test/Test/Test"
unless FileTest.directory?(path)
Dir.mkdir(path)
end
これだと、エラー出るでしょ?

だから、こうします。
def mkdir(path)
Dir.mkdir(path)
rescue Errno::ENOENT
mkdir(path.sub(/[\/\\][^\/\\]+?$/, ""))
retry
end

path = "./Test/Test/Test"
unless FileTest.directory?(path)
mkdir(path)
end

これで途中のフォルダが無くてもエラーになりません。

[追記]
他にもこんな。
def mkdir(path)
return if FileTest.directory?(path)
parent = path.split(/[\\\/]/)[0..-2].join('/')
mkdir(parent) unless parent.empty? || FileTest.directory?(parent)
Dir.mkdir(path)
end

mkdir("Test/a//aa/aaa/te.sr/.u///")
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/503-c3b2d5fe
≪ トップページへこのページの先頭へ  ≫
カレンダー
01 << 2017/02 >> 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 - - - -

カテゴリー
最近の記事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事
08/08 お返事

最近のコメント
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事
02/24 お返事

タグクラウド

リンク