Tudo que eu quero fazer é pegar todo o conteúdo de um arquivo local e armazená-lo em uma variável. Como?
File.read(@icon.full_filename).each {|l| r += l}
só me dá uma parte disso. Em PHP, acabei de usar file_get_contents
.
ruby-on-rails
ruby
Steven
fonte
fonte
Respostas:
data = File.read("/path/to/file")
fonte
Acho que você deve considerar o uso
IO.binread("/path/to/file")
se tiver um intérprete de ruby recente (ou seja,> = 1.9.2)Você pode encontrar a
IO
documentação da aula aqui http://www.ruby-doc.org/core-2.1.2/IO.htmlfonte
Respondendo minha própria pergunta aqui ... acontece que é uma peculiaridade do Windows que acontece ao ler arquivos binários (no meu caso, um JPEG) que requer um sinalizador adicional na chamada de função open ou File.open. Eu revisei para
open("/path/to/file", 'rb') {|io| a = a + io.read}
e estava tudo bem.fonte
data = File.open("file", "rb") {|io| io.read}