Todo lo que quiero hacer es obtener todo el contenido de un archivo local y almacenarlo en una variable. ¿Cómo?
File.read(@icon.full_filename).each {|l| r += l}
solo me da una parte. En PHP, acabo de usar file_get_contents
.
ruby-on-rails
ruby
Steven
fuente
fuente
Respuestas:
data = File.read("/path/to/file")
fuente
Creo que debería considerar usarlo
IO.binread("/path/to/file")
si tiene un intérprete de ruby reciente (es decir,> = 1.9.2)Puede encontrar
IO
la documentación de la clase aquí http://www.ruby-doc.org/core-2.1.2/IO.htmlfuente
Respondiendo a mi propia pregunta aquí ... resulta que es una peculiaridad exclusiva de Windows que ocurre al leer archivos binarios (en mi caso, un JPEG) que requiere una bandera adicional en la llamada a la función open o File.open. Lo revisé
open("/path/to/file", 'rb') {|io| a = a + io.read}
y todo estuvo bien.fuente
data = File.open("file", "rb") {|io| io.read}