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
≪ トップページ ≫
カレンダー
05 << 2021/06 >> 07
- - 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 - - -

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

リンク