Chcę tylko pobrać całą zawartość z pliku lokalnego i zapisać ją w zmiennej. W jaki sposób?
File.read(@icon.full_filename).each {|l| r += l}
daje mi tylko część tego. W PHP właśnie użyłem file_get_contents.
Chcę tylko pobrać całą zawartość z pliku lokalnego i zapisać ją w zmiennej. W jaki sposób?
File.read(@icon.full_filename).each {|l| r += l}
daje mi tylko część tego. W PHP właśnie użyłem file_get_contents.
Odpowiedzi:
data = File.read("/path/to/file")
Myślę, że powinieneś rozważyć użycie, IO.binread("/path/to/file")jeśli masz niedawnego interpretera ruby (tj.> = 1.9.2)
IODokumentację klas można znaleźć tutaj http://www.ruby-doc.org/core-2.1.2/IO.html
Odpowiadając tutaj na moje własne pytanie ... okazuje się, że jest to tylko dziwactwo systemu Windows, które ma miejsce podczas czytania plików binarnych (w moim przypadku JPEG), które wymagają dodatkowej flagi w wywołaniu funkcji open lub File.open. Poprawiłem to open("/path/to/file", 'rb') {|io| a = a + io.read}i wszystko było w porządku.
data = File.open("file", "rb") {|io| io.read}