Trabajar con ruta de archivo en código Java
Pregunta
ejemplo y una creada aplicación servlet.
Funciona perfectamente bien con los caminos tmp_dir y DEST_DIR que se menciona en el código (He creado una carpeta llamada tmp
en la unidad C y también he creado una carpeta llamada files
dentro de mi carpeta de la aplicación.
Ahora estoy cambiando el código para una máquina Linux, si esto no funciona ya que no hay unidad denominada C: allí. He intentado sustituir el c:\\tmp
del código para /tmp
(y creé una carpeta tmp) dentro de mi carpeta de la aplicación. Pero no su trabajo. ¿Cómo puedo hacer que este código genérico? Por favor avise.
Solución
Si lo que desea es un uso directorio temporal http : //commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html y buscarse un getTempDirectory (). Esto debería funcionar en cualquier lugar
Por lo que necesita el directorio temporal del sistema que es proporcionada por el sistema. Usted puede obtener este bien a través de su paso oa través del archivo real. (IOUtils ofrece dos enfoques). Aquí; s la documentación IOUtil: getTempDirectory
public static File getTempDirectory()
Returns a File representing the system temporary directory.
Returns:
the system temporary directory.
Así que si usted escribe:
File myTempFile = IOUtils.getTempDirectory();
A continuación, myTempFile será la que desea escribir.
Si alguna aplicación está pidiendo el directorio por su nombre, puede utilizar getTempDirectoryPath () que dará el nombre de ruta.
En el ejemplo que iba a escribir:
private static final String TMP_DIR_PATH = IOUtils.getTempDirectoryPath();
o usar el enfoque de las adelfas @:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir");
Yo esperaría que dar la misma respuesta.
Si todavía está confundido seguir pidiendo - eso es lo que también lo es para
ACTUALIZACIÓN: Si usted está haciendo lo con archivos que vale la pena familiarizarse con FileUtils y IOUtils de Apache. Hay varias cosas que el JDK no lo hace bien o naturalmente y Apache da un mejor soporte.
Otros consejos
La ubicación del directorio de la plataforma específica se utiliza para mantener los archivos temporales se define por la java.io.tmpdir
propiedad.
Así que en su código que puede utilizar:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir")
File.pathSeparator para obtener dependiente del sistema separador de ruta.
Editado:
Si lo que desea es un directorio temporal a continuación, utilizar File.createTempFile (..)
Ejemplo ruta de archivo: http://www.exampledepot.com/egs/ java.io/ConstructFilePath.html
archivo temporal Ejemplo: http://www.exampledepot.com/egs/ java.io/CreateTempFile.html
Editado:
El archivo del ahorro en el entorno de Servlet: aquí