précédent | suivant | table des matières
|
La classe File encapsule les fonctionnalités de gestion de fichier : Suppression, renommage, date de la dernière modification, etc …
1 Attributs et méthodes de classe :
static String pathSeparator |
Le séparateur de chemins sous forme de chaîne, sous Windows le ";"  et ":" sous Unix; |
static char pathSeparatorChar |
Le séparateur de chemins sous forme de char |
static String separator |
Le séparateur sous forme de chaîne, sous Windows le "\" et "/" sous Unix. |
static char separatorChar |
Le séparateur sous forme de char |
static File createTempFile(String prefix, String suffix) |
Crée un fichier vide temporaire dans le répertoire temporaire. Equivalent à createTempFile(prefix, suffix, null) |
static File createTempFile(String prefix, String suffix, File directory) |
Crée un fichier vide temporaire
|
static File[] listRoots() |
Liste les lecteurs. Un pour chaque lecteur sous Windows (X:) et "/" sous Unix. |
2 Constructeurs
File(File parent, String child) |
|
File(String chemin) |
Crée un nouveau File associé au nom chemin. |
File(String parent, String child) |
3 Méthodes
boolean canRead() |
Renvoie vrai si le fichier peut être lu, et faux sinon. |
boolean canWrite() |
Renvoie vrai si le fichier peut être écrit, et faux sinon. |
int compareTo(File pathname) |
Comparaison des 2 chemins |
int compareTo(Object o) |
|
boolean createNewFile() |
Création d’un nouveau fichier vide, et renvoie vrai si le nouveau fichier n’existait pas avant sa création. |
boolean delete() |
Supprime le fichier |
void deleteOnExit() |
Supprime le fichier à la fin de l’exécution de la machine virtuelle. |
boolean equals(Object obj) |
|
boolean exists() |
Renvoie vrai si et seulement si le fichier existe. |
File getAbsoluteFile() |
|
String getAbsolutePath() |
Retourne le chemin absolu |
File getCanonicalFile() |
|
String getCanonicalPath() |
Retourne le chemin absolu |
String getName() |
Retourne le nom du fichier. |
String getParent() |
|
File getParentFile() |
|
String getPath() |
Retourne le chemin du fichier. |
int hashCode() |
|
boolean isAbsolute() |
|
boolean isDirectory() |
Retourne vrai s’il s’agit d’un répertoire et faux sinon. |
boolean isFile() |
Retourne vrai s’il s’agit d’un fichier "normal" et faux sinon. |
boolean isHidden() |
Retourne true si le fichier est caché.
|
long lastModified() |
Retourne la date de la dernière modification sous forma de long. Date d = new Date(f .lastModified()) ; |
long length() |
La longueur du fichier, en octets. |
String[] list() |
Retourne la liste des fichiers contenus dans le répertoire spécifié par le File. Si le File n'est pas un répertoire le tableau retourné vaut null. |
String[] list(FilenameFilter filter) |
Retourne la liste des fichiers contenus dans le répertoire spécifié, en utilisant un filtre. exemple : class FiltreImage implements FilenameFilter { public boolean accept(File dir, String name) { return (name.endsWith(".gif")||name.endsWith(".GIF") || name.endsWith(".jpeg")||name.endsWith(".JPEG") || name.endsWith(".jpg")||name.endsWith(".JPG") ); } } FiltreImage fImage = new FiltreImage(); File [] tf = new File(repertoire).listFiles(fImage);Si le File n'est pas un répertoire le tableau retourné vaut null. |
File[] listFiles() |
Retourne la liste des fichiers contenus dans le répertoire spécifié par le File. Si le File n'est pas un répertoire le tableau retourné vaut null. |
File[] listFiles(FileNameFilter filter) |
|
boolean mkdir() |
Crée un répertoire. |
boolean mkdirs() |
Crée un répertoire, et tous ses parents nécessaires. L'appel de mkdir avec un File constitué de "\\" retourne false. |
boolean renameTo(File dest) |
Renomme un fichier. retourne false si le file dest existe déjà, et le renommage n'est pas effectué. |
boolean setLastModified(long time) |
  |
boolean setReadOnly() |
Marque le fichier en lecture seule |
String toString() |
|
URL toURL() |
C:\toto est transformé en file:/C:/toto |
4 Exemples.
4.1 Exemple : liste des fichiers du répertoire courant.
File rep = new File(System.getProperty("user.dir")); File [] lesFichiers = rep.listFiles(); for(int i = 0; i < lesFichiers.length; ++i){ File f = lesFichiers[i]; if(!f.isDirectory()) System.out.println(lesFichiers[i].getAbsolutePath()); else System.out.println("REP : "+ lesFichiers[i].getAbsolutePath()); }
Liste récursive des fichiers du répertoire courant :
System.out.println("liste récursive des fichiers du répertoire courant"); File repR = new File(System.getProperty("user.dir")); listeRecursive(repR);
Avec :
void listeRecursive(File rep){ File [] lesFichiers = rep.listFiles(); for(int i = 0; i < lesFichiers.length; ++i){ File f = lesFichiers[i]; if(!f.isDirectory()) System.out.println(lesFichiers[i].getAbsolutePath()); else listeRecursive( lesFichiers[i] ); } }
4.2 Exemple :
un gestionnaire de fichier « léger »
public void listeLecteurs() {
// Liste des disques dans une JList dont le modèle est dlm
dlm.clear();
File[] fs = File.listRoots();
for (int i = 0; i < fs.length; ++i)
dlm.addElement(fs[i].getAbsolutePath());
}
public void listeRepertoire(String nomFichier) { // Liste les fichier de nomFichier si c'est un répertoire // ou un lecteur // nomFichier peut être .. on liste alors le répertoire parent File rep; if (nomFichier.equals("..")) { // répertoire parent String repCourant = System.getProperty("user.dir"); if (repCourant.endsWith(":"+File.separatorChar)) { // le parent d'un lecteur c'est la liste des lecteurs listeLecteurs(); getJFrame().setTitle(""); return; }else { repCourant = repCourant.substring(0, repCourant.lastIndexOf(File.separatorChar)); if (repCourant.length() == 2) repCourant = repCourant + File.separatorChar; rep = new File(repCourant); System.setProperty("user.dir", repCourant); getJFrame().setTitle(System.getProperty("user.dir")); } }else{ if (nomFichier.endsWith(":"+File.separatorChar)){// nomFichier est un lecteur System.setProperty("user.dir", nomFichier); rep = new File(System.getProperty("user.dir")); }else rep = new File(System.getProperty("user.dir") + File.separatorChar + nomFichier); } if (rep.isDirectory()) { // on change de répertoire courant System.setProperty("user.dir", rep.getAbsolutePath()); } rep = new File(System.getProperty("user.dir")); dlm.clear(); dlm.addElement(".."); File[] fss = rep.listFiles(); if(fss==null){ // pas de lecteur ... listeLecteurs(); return; } for (int i = 0; i < fss.length; ++i) dlm.addElement(fss[i].getName()); getJFrame().setTitle(System.getProperty("user.dir")); }