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
≪ トップページ ≫
カレンダー
10 << 2019/11 >> 12
- - - - - 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 29 30

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク