Bonjour à tous
j'ai un bug emmerdant avec une fonction responsable d'affacer les fichier d'un répertoire. peux importe cce que je tente ça lance une NullPointerException.
Voilà les observations que j'ai fait:

  1. l'appel de canRead() me retourn true
  2. l'appel de canWrite() me retourne true aussi
  3. et l'appel de isDirectory() retourne true également
  4. Fait important, le path est le bon


voilà briève le code de cette fonction infernale qui me fait galèrer ( moi et mes collègues depuis une semaine :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
public static void deleteFolderContent(String pDirPath) 
    {  System.out.println(pDirPath);
        File lRep = new File(pDirPath);
        if (!lRep.exists())
            return;
 
        try
        {
            if(lRep.isDirectory()){
			 int iNombreFichiers=0;
            // try/catch pour tests uniquement
            try{
				iNombreFichiers=lRep.listFiles().length;
            }
            catch (NullPointerException e)
            {
               System.out.println("Erreur de lenght"); 
            }
 
			System.out.println("NB file:" +iNombreFichiers);
            //On allocate un Array correspondant au nombre de fichiers dans le DIR
            File[] lFiles = new File[iNombreFichiers]; 
            /*croyant que c'était à ce niveau,
            j'ai pensé créer un Array de taille correspondante au nombre de      fichiers */
 
            if (iNombreFichiers == 0)
                return;
			lFiles=lRep.listFiles();
            for (int i = 0; i < iNombreFichiers; i++)
            {           
            	System.out.println("Suis dans le for");
                File fFichierCourant = lFiles[i];
                if (fFichierCourant != null)
                    log.info("Effacement de :" +fFichierCourant.getName());
                    fFichierCourant.delete();
            }
           }
        }
        catch(NullPointerException nEx){
        	//selon l'API, listFiles() lance une NullPointerException si le répertoire est vide (or, dans mon cas, il n'est pas vide)
        	log.warn(" le dossier à efacer est vide "+ lRep);
        }
        catch (Exception e){
         //LOG - logging starts here 
        log.fatal("Exception dans : deleteFolderContent() de BanGenFileUtils"+e.getMessage());
        }
 
 
 
 
    }

Quelqu'un a une idée du pourquoi de ce bug chiant ?

Merci d'avance de votre aide

Laurent