Java y JSF, comprobando si existe un archivo en el servidor

Tengo una aplicación web y estoy tratando de devolver un booleano de un archivo .zip que se genera (con éxito) en el servidor.

Localmente ejecuto esto en Eclipse con Tomcat en Windows, pero lo estoy implementando en un servidor Tomcat en una máquina Linux.

        //.zip is generated successfully on the SERVER by this point
        File file1 = new File("/Project/zip/theZipFile.zip");

        boolean exists = file1.exists();// used to print if the file exists, returns false
        if (exists)
            fileLocation = "YES"; 
        else
            fileLocation = "No";

Cuando hago esto, sigue devolviendo falso en el depurador y en mi página cuando lo imprimo. Estoy seguro de que tiene algo que ver con las rutas de los archivos, pero no estoy seguro.

Una vez que haya confirmado la existencia del zip, puedo usar fácilmente File.length () para obtener lo que necesito.

Suponga que existen todos los captadores y definidores, y que el JSF se imprime. Es principalmente el backend de Java con el que tengo un pequeño problema.

¡Gracias por cualquier ayuda! :)

preguntado el 09 de marzo de 12 a las 15:03

2 Respuestas

Tu camino no es bueno. Intente eliminar el / principal para solucionar el problema Consulte el código de prueba para obtener explicaciones:

import java.io.*;
public class TestFile {

public static void main(String[] args) {

try {
//Creates a myfile.txt file in the current directory
File f1 = new File("myfile.txt");
f1.createNewFile();
System.out.println(f1.exists());

//Creates a myfile.txt file in a sub-directory
File f2 = new File("subdir/myfile.txt");
f2.createNewFile();
System.out.println(f2.exists());

//Throws an IOException because of the leading /
File f3 = new File("/subdir/myfile.txt");
f3.createNewFile();
System.out.println(f3.exists());

} catch(IOException e) {
System.out.println(e.getMessage());
}
}
}

respondido 09 mar '12, 18:03

Depurar usando esta declaración

System.out.println("Actual file location : " + file1.getAbsolutePath());

Esto le dirá la ruta absoluta del archivo que está buscando.

respondido 09 mar '12, 15:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.