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
.
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
.
Respostas:
data = File.read("/path/to/file")
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.html
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.
data = File.open("file", "rb") {|io| io.read}