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