私がやりたいのは、ローカルファイルからすべてのコンテンツを取得し、それを変数に格納することだけです。どうやって?
File.read(@icon.full_filename).each {|l| r += l}
その一部しかくれません。PHPでは、を使用しましたfile_get_contents
。
私がやりたいのは、ローカルファイルからすべてのコンテンツを取得し、それを変数に格納することだけです。どうやって?
File.read(@icon.full_filename).each {|l| r += l}
その一部しかくれません。PHPでは、を使用しましたfile_get_contents
。
回答:
data = File.read("/path/to/file")
IO.binread("/path/to/file")
最近のRubyインタープリター(つまり> = 1.9.2)がある場合は、使用を検討する必要があると思います。
あなたは見つけることができるIO
ここではクラスのドキュメントをhttp://www.ruby-doc.org/core-2.1.2/IO.html
ここで私自身の質問に答える...それは、openまたはFile.open関数呼び出しで追加のフラグを必要とするバイナリファイル(私の場合はJPEG)を読み取るときに発生するWindowsのみの癖であることがわかりました。私はそれをに修正しましたopen("/path/to/file", 'rb') {|io| a = a + io.read}
、そしてすべては大丈夫でした。
data = File.open("file", "rb") {|io| io.read}