précédent | suivant | table des matières

File

Sommaire
  1. Attributs et méthodes de classe
  2. Constructeurs
  3. Méthodes
  4. Exemples
    1. dir
    2. gestionnaire de fichiers

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
  • Le préfixe doit avoir au moins 3 caractères.
  • Si le suffixe est null le suffixe utilisé est "tmp".
  • Le fichier est créé dans le répertoire directory. Si celui-ci vat null il est créé dans le réperoire temporaire du système.
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é.
  • Sous Windows le fichier est marqué "caché".
  • Sous Unix le nom du fichier commence par un point.
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"));
}

haut de la page