0
public static void main(String[] args) {
        final File carpeta = new File("C:\\Users\\Juan\\Documents");
        listarFicherosPorCarpeta(carpeta );
}



public static void listarFicherosPorCarpeta(final File carpeta) {
    for (final File ficheroEntrada : carpeta.listFiles()) {
        if (ficheroEntrada.isDirectory()) {
            listarFicherosPorCarpeta(ficheroEntrada);
        } else {
            if(ficheroEntrada.getName().endsWith((".pdf"))){
            System.out.println(ficheroEntrada.getAbsolutePath());
            System.out.println(ficheroEntrada.getName());
            }
        }
    }
}

//el error que me sale

Exception in thread "main" java.lang.NullPointerException
at prjprueba2.PrjPrueba2.listarFicherosPorCarpeta(PrjPrueba2.java:27)
at prjprueba2.PrjPrueba2.listarFicherosPorCarpeta(PrjPrueba2.java:29) ,
at prjprueba2.PrjPrueba2.main(PrjPrueba2.java:22)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Esto es lo que me imprime, pero al final me bota error introducir la descripción de la imagen aquí

Ruslan López
  • 10,060
  • 11
  • 35
  • 68
  • Prueba a poner un punto de interrupción en el for para ver como te entra el parámetro carpeta, también pon en 'listarFicherosPorCarpeta(ficheroEntrada);' y en 'if(ficheroEntrada.getName().endsWith((".pdf"))){ ' para ver en qué rama entra antes de dar el NullPointer y haz debug. A partir de ahí tenemos más datos para ayudarte. – Angel Gonzalez Pena Oct 09 '18 at 06:11
  • Puedes controlarlo con un `try and catch`. Dentro del `try`meterías todo el código `for`, y si te falla, entrará por el `catch` y mostrará algún tipo de mensaje – Csc99 Oct 09 '18 at 10:06
  • Claramente el stacktrace de la excepción esta mostrando donde ocurre el error "at prjprueba2.PrjPrueba2.listarFicherosPorCarpeta(PrjPrueba2.java:27)", sin embargo el código que compartes no está completo no es posible ayudarte solo con ese fragmento – Jonnathan Q Oct 09 '18 at 13:17
  • ¿Y en tu código cual es la linea 27? ¿Cual es el contenido de tu carpeta?. – Darth Vader Oct 09 '18 at 14:13

1 Answers1

0

Asegúrate que la ruta C:\Users\Juan\Documents existe y este bien escrita, y como veo que estas utilizando Windows verifica que tengas permisos sobre la carpeta Documents, yo aquí por default tenía Control Total y se ejecutaba correctamente,pero cuando se lo cambié a Denegar me marcó el NullPointerException:

introducir la descripción de la imagen aquí

Este es mi código, solo le cambié la ruta:

public static void main(String[] args) {
    final File carpeta = new File("C:\\archivo\\Documentos");
    listarFicherosPorCarpeta(carpeta );
}


public static void listarFicherosPorCarpeta(final File carpeta) {
    for (final File ficheroEntrada : carpeta.listFiles()) {
        if (ficheroEntrada.isDirectory()) {
            listarFicherosPorCarpeta(ficheroEntrada);
        } else {
            if(ficheroEntrada.getName().endsWith((".pdf"))){
            System.out.println(ficheroEntrada.getAbsolutePath());
            System.out.println(ficheroEntrada.getName());
            }
        }
    }
}   

En mi carpeta Documentos tengo 2 archivos, 1 es word y otro pdf(también lo ejecuté con la carpeta vacía, pero no me marcó nada): introducir la descripción de la imagen aquí

Este es el resultado:

C:\archivo\Documentos\archivo1.pdf

archivo1.pdf

Tal vez tengas una carpeta y esa carpeta no tenga permisos tampoco yo agregué una carpeta y le denegué los permisos y este fue el resultado:

C:\archivo\Documentos\archivo1.pdf archivo1.pdf

Exception in thread "main" java.lang.NullPointerException

at Test.listarFicherosPorCarpeta(Test.java:14)

at Test.listarFicherosPorCarpeta(Test.java:16)

at Test.main(Test.java:9)

introducir la descripción de la imagen aquí

Darth Vader
  • 845
  • 1
  • 8
  • 13
  • Si existe la ubicacion que le mando y si me imprime los documentos que encuentra pero al final me bota error null pointer – Juan Seferino Oct 10 '18 at 02:35
  • @JuanSeferino edité mi respuesta agregué una carpeta y le denegué los permisos.Utiliza el debug y pon un breakpoint y ve cual es el valor en el que devuelve el NullPointerException. – Darth Vader Oct 10 '18 at 15:44
  • Creo que es un problema más de permisos de lectura en Windows sobre el siguiente elemento después de **Seguridadciudadana.pdf**. – Darth Vader Oct 10 '18 at 16:55