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
≪ トップページ ≫
カレンダー
07 << 2020/08 >> 09
- - - - - - 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 31 - - - - -

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

リンク