Все, що я хочу, це отримати весь вміст з локального файлу і зберегти його у змінній. Як?
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")
якщо у вас є недавній перекладач рубіну (тобто> = 1.9.2)
Ви можете знайти IO
документацію до класу тут http://www.ruby-doc.org/core-2.1.2/IO.html
Відповідаючи на моє власне запитання тут ... виявляється, це лише химерність Windows, яка трапляється під час читання двійкових файлів (у моєму випадку JPEG), що вимагає додаткового прапора у виклику відкритої функції або File.open. Я переглянув його, open("/path/to/file", 'rb') {|io| a = a + io.read}
і все було добре.
data = File.open("file", "rb") {|io| io.read}