Search thousands of newspapers, magazines!



Analizzare il file system

Quante volte avete avuto bisogno di manipolare file dalle vostre applicazioni? Leggere, salvare dati su file in Java è semplicissimo, specialmente grazie alle nuove funzioni inserite nella versione 1.2 del JDK. Uno dei problemi che deve affrontare un programmatore che operi su sistemi Windows è sapere quali e quante radici sono disponibili sul sistema (A:\, C:\, D:\, ...). Eh si, perché mentre su un sistema Unix è più facile orientarsi essendo la radice unica ( '\'), sui sistemi Windows la cosa può creare qualche problema. Con Java 1.2 è stato aggiunto un nuovo metodo alla classe File che permette di ottenere un elenco delle radici disponibili: listRoots(). E' Tuttavia necessario far attenzione in quanto il metodo restituisce tutte le radici disponibili sul sistema includendo quelle che possono rivelarsi, come le chiama Windows, "non pronte". Con questa dicitura mi riferisco ad esempio ad un drive senza il dischetto inserito, o a un CD-ROM momentaneamente sprovvisto di CD. Ulteriore attenzione va fatta per parti del file system indicate come read-only o comunque non accessibili per l'applicazione. Tutte queste eventualità possono essere gestite tramite dei metodi cheati ad hoc. Il listato che segue elenca le radici disponibili su un sistema Windows.




Import java.io.*;

public class radici {

public static void main (String args[])
{ File ListaRadici[] = File.listRoots();
for (k=0; k<ListaRadici.length; k++) { System.out.print ("Sto analizzando "+ListaRadici[k]+". ");
if (ListaRadici.exists()) System.out.println ("La radice risulta disponibile.");
else System.out.println ("La radice non è accessibile.");
}
}

}



Una volta accertati quali radici o drive sono disponibili potete analizzare il loro contenuto utilizzando il metodo list(), che applicato ad una radice restituisce un array di stringhe contenente i nomi dei file e/o directory in essa contenuti. A questo punto potrete scorrere l'elenco ottenuto ed applicare i metodi isDirectory() e isFile() distinguere quali voci si riferiscono a directory e quali a file. E' possibile a questo punto proseguire la ricerca tornando a chiamare il metodo list() sulle nuove directory individuate. E' piuttosto semplice, una volta familiarizzato con queste funzioni, costruire una procedura ricorsiva che, ad esempio, si occupi di analizzare il contenuto dei dischi presenti sul computer. Altri metodi utili sono getPath() che restituisce il path associato ad un oggetto di tipo File; exist() che verifica l'esistenza del file indicato; mkDir(), renameTo() e delete() la cui utilità è facilmente deducibili dal nome.





Search thousands of newspapers, magazines!