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"));
}