¿Cómo obtener el directorio de trabajo actual en Java?

Resuelto Qazi asked hace 13 años • 0 respuestas

Quiero acceder a mi directorio de trabajo actual usando Java.

Mi código:

 String currentPath = new java.io.File(".").getCanonicalPath();
 System.out.println("Current dir:" + currentPath);

 String currentDir = System.getProperty("user.dir");
 System.out.println("Current dir using System:" + currentDir);

Producción:

Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32

Mi resultado no es correcto porque la unidad C no es mi directorio actual.

¿Cómo obtener el directorio actual?

Qazi avatar Feb 02 '11 12:02 Qazi
Aceptado

Código:

public class JavaApplication {
  public static void main(String[] args) {
    System.out.println("Working Directory = " + System.getProperty("user.dir"));
  }
}

Esto imprimirá la ruta absoluta del directorio actual desde donde se inicializó su aplicación.


Explicación:

De la documentación :

java.ioEl paquete resuelve nombres de rutas relativas utilizando el directorio de usuario actual. El directorio actual se representa como propiedad del sistema, es decir, user.dires el directorio desde donde se invocó la JVM.

Anuj Patel avatar Sep 29 '2011 21:09 Anuj Patel

Consulte: Operaciones de ruta (Tutoriales de Java™ > Clases esenciales > E/S básicas) .

Usando java.nio.file.Pathy java.nio.file.Paths, puede hacer lo siguiente para mostrar cuál cree Java que es su ruta actual. Esto para 7 en adelante, y usa NIO.

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current absolute path is: " + s);

Esto produce:

Current absolute path is: /Users/george/NetBeansProjects/Tutorials

ahí en mi caso es desde donde dirigí la clase.

La construcción de rutas de forma relativa, al no utilizar un separador inicial para indicar que está construyendo una ruta absoluta, utilizará esta ruta relativa como punto de partida.

geoO avatar Apr 11 '2013 17:04 geoO

Lo siguiente funciona en Java 7 y versiones posteriores (consulte aquí para obtener documentación).

import java.nio.file.Paths;

Paths.get(".").toAbsolutePath().normalize().toString();
Dmitry avatar Mar 12 '2014 12:03 Dmitry

Esto le dará la ruta de su directorio de trabajo actual:

Path path = FileSystems.getDefault().getPath(".");

Y esto le dará la ruta a un archivo llamado "Foo.txt" en el directorio de trabajo:

Path path = FileSystems.getDefault().getPath("Foo.txt");

Editar: Para obtener una ruta absoluta del directorio actual:

Path path = FileSystems.getDefault().getPath(".").toAbsolutePath();

* Actualizar * Para obtener el directorio de trabajo actual:

Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
Mark avatar Sep 15 '2017 20:09 Mark

Java 11 y más reciente

Esta solución es mejor que otras y más portátil:

Path cwd = Path.of("").toAbsolutePath();

O incluso

String cwd = Path.of("").toAbsolutePath().toString();
freedev avatar Jun 25 '2018 16:06 freedev