Nano Hash - криптовалюты, майнинг, программирование

Переход в каталог на один уровень вниз

Можно ли перейти в каталог на один уровень ниже в Java?

Например, в командной строке:

C:\Users\foo\

Я могу использовать cd.. для перехода к:

C:\Users\

Можно ли сделать это в Java, потому что я получаю каталог с помощью System.getProperty("user.dir"); однако это не тот каталог, в котором я хотел бы работать, а скорее 1 уровень вниз по каталогу.

Я подумал об использовании метода класса Path; subpath(i,j), но если бы "user.dir" был изменен на другой каталог, то возвращаемый subpath был бы другим.

13.03.2012

  • Я считаю, что C:\\Users\\foo\\.. разрешено, поэтому вы можете добавить это к пути. 13.03.2012
  • привет, попробовал Path workDirPath = Paths.get(System.getProperty(user.dir)+\\..); распечатайте добавление пути .. не опустит меня на один уровень. 13.03.2012

Ответы:


1

Класс File может сделать это изначально.

File upOne = new File(System.getProperty("user.dir")).getParentFile()

http://docs.oracle.com/javase/6/docs/api/java/io/File.html#getParentFile%28%29

13.03.2012

2

В моей системе ".." является допустимым компонентом пути.
Вот пример.

File file;
String userDir = System.getProperty("user.dir");
file = new File(userDir);
System.out.println(file.getCanonicalPath());
file = new File(userDir+"/..");
System.out.println(file.getCanonicalPath());

Выход:

C:\ano\80g\workaces\_JAV_1.0.0\CODE_EXAMPLE
C:\ano\80g\workaces\_JAV_1.0.0
13.03.2012

3

Как указывалось в предыдущих ответах, вы можете сделать это, используя File. В качестве альтернативы, используя классы Java 7 NIO, как вы, кажется, делаете, следующее должно делать то же самое:

Paths.get(System.getProperty("user.dir") + "/..").toRealPath();

Обратите внимание, что «/» также является допустимым разделителем каталогов в файловой системе Windows (хотя я тестировал этот код в Linux).

13.03.2012

4
private static void downDir(int levels) {
    String oldPath = System.getProperty("user.dir");
    String[] splitedPathArray = oldPath.split("/");
    levels = splitedPathArray.length - levels;
    List<String> splitedPathList = Arrays.asList(splitedPathArray);
    splitedPathList = splitedPathList.subList(0, levels);
    String newPath = String.join("/", splitedPathList);
    System.setProperty("user.dir", newPath);
}

Должно сработать. Для уровней просто укажите 1.

17.09.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..