14

Как получить текущую рабочую директорию в Java?

15

Проблема доступа к текущему рабочему каталогу в Java

Я пытаюсь получить путь к текущему рабочему каталогу в Java. Вот мой код:

String currentPath = new java.io.File(".").getCanonicalPath();
System.out.println("Текущий каталог: " + currentPath);

String currentDir = System.getProperty("user.dir");
System.out.println("Текущий каталог с использованием System: " + currentDir);

Вывод:

Текущий каталог: C:\WINDOWS\system32
Текущий каталог с использованием System: C:\WINDOWS\system32

Однако мой вывод неверен, так как каталог C не является моим текущим рабочим каталогом.

Вопрос:

Как правильно получить текущий каталог в Java?

5 ответ(ов)

0

Java 11 и новее

Это решение лучше других и более портативно:

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

Или даже

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

Эти варианты позволяют получить абсолютный путь к текущему рабочему каталогу, используя современный API Java для работы с файлами.

0

Вот как получить путь к вашему текущему рабочему каталогу:

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

А вот как получить путь к файлу с именем "Foo.txt" в рабочем каталоге:

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

Правка: Чтобы получить абсолютный путь к текущему каталогу:

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

* Обновление * Чтобы получить текущий рабочий каталог:

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

Вот решение, которое мне подошло:

File currentDir = new File("");

Этот код создает объект File, представляющий текущую директорию.

0

В Java, выражение this.getClass().getClassLoader().getResource("").getPath() используется для получения пути к корневой директории ресурсов в проектах. Давайте разберём его по частям:

  1. this.getClass() - это обращение к объекту текущего класса, из которого вызывается данный код.
  2. getClassLoader() - возвращает класс загрузчик, который используется для загрузки классов и ресурсов.
  3. getResource("") - получает ресурс с указанным именем. В данном случае, пустая строка указывает на корень ресурсов.
  4. getPath() - возвращает путь к этому ресурсу в виде строки.

Обратите внимание, что данный подход может работать по-разному в зависимости от того, как ваша программа упакована и запущена (например, в IDE, jar-файле и т.д.). Если ресурсов нет или они находятся в неправильной директории, может быть возвращен null, поэтому рекомендуется проверять на наличие ресурса перед использованием.

Вот пример на русском:

String path = this.getClass().getClassLoader().getResource("").getPath();
if (path != null) {
    System.out.println("Путь к ресурсам: " + path);
} else {
    System.out.println("Ресурс не найден.");
}

Таким образом, это выражение полезно для получения абсолютного пути к ресурсам проекта, чтобы вы могли работать с файлами или другими ресурсами в вашей программе.

0

Чтобы получить текущую рабочую директорию в виде объекта File, вы можете использовать следующий метод:

File getCwd() {
  return new File("").getAbsoluteFile();
}

Если вы хотите получить полный путь в виде строки, например, "D:/a/b/c", вы можете сделать это, вызвав метод getAbsolutePath():

String currentPath = getCwd().getAbsolutePath();

Таким образом, currentPath будет содержать полный путь к текущей рабочей директории.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь