ファイルの削除
File と FileUtils でできるけど、いろいろ違う。
File | FileUtils | |
---|---|---|
メソッド名 | unlink | rm |
メソッド名の由来 | symbolic link を削除する | ReMove |
複数指定するとき | 引数に並べる | 配列を渡す |
複数指定の例 | File.unlink( "a", "b", "c" ) |
FileUtils.rm( %w( a b c )) |
オプション指定 | なし | :force=>true とか |
返戻値 | 削除したファイルの数 | 削除したファイルのファイル名の配列 |
それと、失敗した時の挙動。
失敗した動作はちょっと不穏なんだけど、File.unlink
と FileUtils.rm
は同じ。
先頭から順に削除するので、
c というファイルがない場合、
File.unlink( "a", "b", "c", "d" )
を実行すると、 a と b が削除されて、c を削除しようとして失敗、d はそのまま。
Windows で rbenv したい
pik と uru があるらしい。
uru が良さそうな感じ?
Windows の File.sticky?
nil
を返してきた。
もちろん Mac や Linux では true
や false
を返す。
ちなみに File.sticky? "存在しないファイル"
は 例外ではなく false。
OpenSolaris
OpenSolaris は死んだらしい。
屍は OpenIndiana が拾って、zfs を使いたい人が使うらしい。
文字列の連接
C言語由来( BCPL由来? )と思われる文字列の連接が、ruby にもある。
ということを、yokohama.rb で知った。
文字列の連接とは、
char const * hoge = "H" "O" /*コメント書いたり*/ "G" "E";
wchar_t const * fuga = L"HO" /* L を両方につける */ L"GE";
こういうもので、文字列リテラルを並べると、コンパイル時にひとまとまりになるというもの。
ruby では以下のとおり:
"a" "b".size #=> 2
"a" "b"*3 #=> "ababab"
[1,2,3] * "_" "#" #=> "1_#2_#3"
?a "b" 'c' #=> "abc"
"a" 'b' "c" #=> "abc"
"a" %Q!b! #=> エラー
- 文字列の連接の結合順位はたぶん最強で、メソッド呼び出しのピリオドよりも強い。
-
'a'
と"b"
を混ぜても良いが、%Q!c!
は連接しない。 -
?a
も、普通に連接される。 - ヒアドキュメントは、左側にある場合のみ連接される。下記の通り:
p <<HEREDOC "[concat]" # ヒアドキュメントも連接される!
here document
HEREDOC
#=> "here document\n[concat]" 順序に注意。
p "[concat]" <<HOGE # エラー。ヒアドキュメントが右だとだめ。
here document
HOGE
追記 :
文字列の連接についてさらに調べた記事
http://qiita.com/Nabetani/items/29a82811e95f80edbb27
を、書いた。