Foro de elhacker.net

Programación => Java => Mensaje iniciado por: AlterMundis en 28 Enero 2013, 20:02 pm



Título: Problema al listar directorio con File.list()
Publicado por: AlterMundis en 28 Enero 2013, 20:02 pm
Hola amigos foreros, os traigo un problema que no acabo de encauzar, me ocurre que no soy capaz de solucionar :(
Cuando intento listar el directorio Archivos de programa, no hay manera... me devuelve un null pointer exception.
El código es este:
Código
  1. static void cargarDirectorio(String directorioActual){
  2.        vaciarTabla();
  3.        File dir = new File(directorioActual);
  4.  
  5.        String[] ficheros = dir.list();
  6.        //System.out.println(dir.list().length);
  7.        if(dir.canRead() && dir != null && ficheros.length != 0){
  8.        for(int i = 0; i < ficheros.length ; i++){
  9.            tablaFicheros.setValueAt(ficheros[i], i, 0);
  10.            tablaFicheros.setValueAt(i, i,1);
  11.        }
  12.        }else{
  13.            System.out.println("No se puede leer el directorio.");
  14.        }
  15.  
  16.    }
  17.    static void vaciarTabla(){
  18.        for(int i = 0; i < 61; i++){
  19.            tablaFicheros.setValueAt("", i, 0);
  20.            tablaFicheros.setValueAt("", i, 1);
  21.        }
  22.    }
  23.  

Y para probarlo hago:
Código
  1. cargarDirectorio("C:\\Archivos de programa");

Cabe mencionar que me ocurre lo mismo con Documents and settings.
He comprobado que tenga permisos para listar y nada :O

Gracias por vuestro tiempo :)


Título: Re: Problema al listar directorio con File.list()
Publicado por: kid_goth en 28 Enero 2013, 20:17 pm
no estoy muy seguro pero prueba con una carpeta que no tenga espacios, si te lista entonces prueba a poner:

cargarDirectorio("C:\\Archivos\ de\ programa");


Título: Re: Problema al listar directorio con File.list()
Publicado por: alister en 28 Enero 2013, 20:22 pm
escapaste el slash, pero tambien debes escapar los espacios
Código:
cargarDirectorio("C:\\Archivos\ de\ programa");


Título: Re: Problema al listar directorio con File.list()
Publicado por: AlterMundis en 29 Enero 2013, 19:32 pm
Poniendo la siguiente llamada
Código
  1. cargarDirectorio("C:\\Archivos\\ de\\ programa");
Mi dir.canRead() retorna falso :O
Como puede ser esto si soy el usuario Administrador :O
EDITO: No es problema de espacios, porque la carpeta llamada "Program files" me la abre perfectamente.

Saludos


Título: Re: Problema al listar directorio con File.list()
Publicado por: amchacon en 29 Enero 2013, 20:59 pm
No es problema de espacios, porque la carpeta llamada "Program files" me la abre perfectamente
Usas Windows 7? La carpeta Archivos de Programa se llama Program Files (el hecho que el explorador de windows te indique Archivos de Programa no indica que este sea su verdadero nombre).

Y eso es muy fácil de demostrar, metete en la carpeta de "Archivos de Programa". Clica en la barra de dirreciones y te aparecerá la ruta verdadera.


Título: Re: Problema al listar directorio con File.list()
Publicado por: AlterMundis en 29 Enero 2013, 21:32 pm
Usas Windows 7? La carpeta Archivos de Programa se llama Program Files (el hecho que el explorador de windows te indique Archivos de Programa no indica que este sea su verdadero nombre).

Y eso es muy fácil de demostrar, metete en la carpeta de "Archivos de Programa". Clica en la barra de dirreciones y te aparecerá la ruta verdadera.

Ese era el error...
Madre mía...

Muchas gracias, tema cerrado!