/* *************************************************************************
* Il Java ha anche una classe File, specializzata nel gestire files sulla
* macchina host (quella su cui viene eseguito il programma), che e' molto
* meno astratta di FileInputStream/FileOutputStream.
* Fa riferimento ad un file sul disco, e serve in particolare per il
* supporto di path e nomi file particolari della macchina specifica.
* E' possibile anche avere informazioni sugli attributi del file, e le
* directory sono considerate file listabili.
* I metodi piu' importanti della classe File sono:
*
*
* canRead() ; Restituisce true se e' leggibile, altrimenti false
*
* canWrite() ; Restituisce true se e' scrivibile, altrimenti false
*
* equals(Object) ; Confronta il file con un'altro
*
* exists() ; Restituisce true se il file esiste, altrimenti false.
*
* getPath() ; Restituisce il path (solo quello indicato da noi)
*
* getAbsolutePath() ; Restituisce il path assoluto (es: c:\javcors\..\..)
*
* isDirectory() ; Ritorna true se esiste ed e' una directory, altr. false.
*
* isFile() ; Ritorna true se esiste ed e' un file, altrim. false.
*
* length() ; Restituisce la lunghezza del file
*
* list() ; Lista i file di una directory. Restituisce un array di
* Stringhe con i nomi.
*
* mkdir() ; Crea una dir e restit. true se ha avuto successo.
*
* renameTo(File) ; Rinomina un file e restit. true se ha successo.
*
*
* Per istanziare un File basta passare il nome e/o path al costruttore:
*
* File MioFile1 = new File("Jlez6b.java");
* File MioFile2 = new File("c:/marietto/appunti/letterina.txt");
*
* I metodi di java.io.File non causano eccezioni IOException, quindi non
* sono necessari i try-catch. Se un'operazione non ha avuto successo i
* metodi restituiscono false anziche' true, per informarci.
* NOTA: I separatori di percorso su Unix sono "/", mentre su ms-dos sono
* il backslash "\". In questo caso java permette di usare "/" anche su
* ms-dos.
* Proviamo qualche metodo di java.io.File, leggendo gli atributi di questo
* sorgente, Jlez6b.java.
************************************************************************* */
import java.io.*; // Include le funzioni I/O standard di base.
class Jlez6b { // Da qua inizia la classe Jlez6b
public static void main(String args[]) // Definiamo il metodo Main.
{ // Inizio del main()
// Gli oggetti File li dichiaro nel main() perche' siano accessibili in
// tutto il suo {blocco}.
File MioFile1 = new File("Jlez6b.java"); // Il file che mi interessa.
// Come prima cosa controllo se il file esiste.
if(MioFile1.exists()) {
// Il file esiste, provo a leggere un po' di informazioni sul file.java
System.out.println("\nInformazioni sul File " + MioFile1 + ":\n");
String percorso = MioFile1.getPath(); // Prendo il path
String percorso2 = MioFile1.getAbsolutePath(); // e path assoluto
System.out.println("Path = " + percorso); // E lo stampo
System.out.println("Path assoluto = " + percorso2); // E lo stampo
System.out.println("Lunghezza = " + MioFile1.length());
if(MioFile1.isDirectory()) System.out.println("File di tipo directory.");
else System.out.println("File normale.");
if(MioFile1.canRead()) System.out.println("File leggibile.");
else System.out.println("File non leggibile.");
if(MioFile1.canWrite()) System.out.println("File scrivibile.");
else System.out.println("File non scrivibile.");
System.out.println("Tutte le operazioni sono riuscite.");
}
else System.out.println("Il file " + MioFile1 + " non esiste!");
} // Fine del metodo principale Main()
} // Fine della classe Jlez6b
/* *************************************************************************
* Provate a far leggere altri file o file inesistenti per verificare.
************************************************************************* */
