Tutto quello che voglio fare è ottenere tutto il contenuto da un file locale e memorizzarlo in una variabile. Come?
File.read(@icon.full_filename).each {|l| r += l}
me ne dà solo una parte. In PHP, ho appena usato file_get_contents
.
Tutto quello che voglio fare è ottenere tutto il contenuto da un file locale e memorizzarlo in una variabile. Come?
File.read(@icon.full_filename).each {|l| r += l}
me ne dà solo una parte. In PHP, ho appena usato file_get_contents
.
Risposte:
data = File.read("/path/to/file")
Penso che dovresti prendere in considerazione l'utilizzo IO.binread("/path/to/file")
se hai un interprete ruby recente (cioè> = 1.9.2)
Puoi trovare la IO
documentazione della classe qui http://www.ruby-doc.org/core-2.1.2/IO.html
Rispondendo alla mia domanda qui ... si scopre che è solo una stranezza di Windows che si verifica durante la lettura di file binari (nel mio caso un JPEG) che richiede un flag aggiuntivo nella chiamata alla funzione open o File.open. L'ho rivisto open("/path/to/file", 'rb') {|io| a = a + io.read}
e tutto è andato bene.
data = File.open("file", "rb") {|io| io.read}