Concludiamo con una carrellata dei principali metodi utilizzabili sui file:
- atime, ctime e mtime restituiscono rispettivamente la data di ultimo accesso, di creazione e di modifica
- chmod e chown modificano i permessi e il proprietario
- lstat restituisce delle informazioni sul file
- rename rinomina il file
- delete e unlink cancellano il file
- size restituisce le dimensioni in byte
- read restituisce il contenuto del file in una unica stringa
- readchar legge un carattere dal file
- readline legge una linea dal file
- readlines restituisce un array avente per elementi le linee del file
file = File.new("test.txt") file.readlines => ["Vento invernalen", "Un monaco scinton", "Cammina nel boscon"]
poi ci sono i metodi interrogativi:
- exist? restituisce true se il file passato come argomento esiste
- executable? restituisce true se il file è eseguibile
- readable? restituisce true se il file è leggibile
- writable? restituisce true se il file è scrivibile
- file? restituisce true se è un file regolare, ovvero se non è un socket, una directory, etc.
- owned? restituisce true se l'user ID del processo è lo stesso del file
Le directory
Prima di concludere questo capitolo, per completezza, diamo uno sguardo anche alle directory. La classe per la gestione delle directory è Dir
e anche in questa classe abbiamo i metodi new
, open
e close
con lo stesso significato visto per i file. Ad esempio creiamo, apriamo e chiudiamo una directory in questo modo:
Dir.mkdir("test") test_dir = Dir.new("test") test_dir.close
oppure con open
, senza bisogno di chiamare close
alla fine delle operazioni:
Dir.open("test") do |d| ... end
Dove Dir.mkdir
crea una nuova directory, è possibile passargli come secondo argomento anche i relativi permessi. Per il resto rimando alla documentazione ufficiale per un elenco completo di tutti i metodi.