&tag(Ruby, ファイル); *目次 [#ve4f3336] #contents *参考情報 [#a976c8aa] -[[Ruby]] *エンコーディング [#i1984b49] **BOM付きUTF-8ファイルを書き出す [#i9f1f0fa] -手作業でやるしかない? #pre{{ def write_bom(fp) data = " " data.setbyte(0, 0xEF) data.setbyte(1, 0xBB) data.setbyte(2, 0xBF) fp.write(data) end }} *ファイルを削除する [#v4efa279] **FileUtils.rmを使う [#cb4da459] ***ファイルを一つだけ削除 [#ha3bffa3] FileUtils.rm("d:/temp/foo.txt") *** ワイルドカードにマッチするファイルを削除 [#ce50d17a] FileUtils.rm(Dir.glob("d:/temp/*.jpg")) *トラブルシューティング [#ed06a0ca] **ファイルに出力すると^Mが表示される。 [#a3f30012] -[[^M (ハットM)記号について - Fakin'it:http://fakinit.xrea.jp/fakinit/2009/07/m-m.html]]に書いてあるように、^MはCR(=\r)に相当することを前提として、例えば次ぎのようなプログラムをWindows環境で動かす。 #pre{{ f = File.open("log.txt", "w") f.print("abc\r\n") f.close }} -するとlog.txtには次のような文字が書き出される(しかもエディタで見るとcrlfモード)。 abc^M -これはファイルをテキストモードで書き出しオープン(="w")しているため。\nが\r\nに変換されて書き出されるため、結局ファイルには"abc\r\r\n"が書き出されていることになる。末尾の\r\nがcrlfモードとしてエディタに認識され、残った\rが^Mとして画面に表示されることになる。