Существует ли системное свойство Java для диска C: (или эквивалент Unix)? - PullRequest
4 голосов
/ 20 апреля 2011

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

Свойства Java-системы дают мне доступ к $ {user.home}, но мне нужно быть точнее, чем «Machintosh HD / Applications», если быть точным.

Как я могу указать ant на каталог выше user.home?

Ответы [ 8 ]

6 голосов
/ 20 апреля 2011

Вы можете просто использовать косую черту (в стиле Unix) и просто начать свой путь с /:

<property name="root.dir" location="/"/>

, и он разрешит корень диска по умолчанию, соответствующий вашей платформе ОС (например, C:\ в Windows и / в Unix).

<property name="tmp.dir" location="/tmp"/>

разрешается до C:\tmp или /tmp, в зависимости от вашей платформы.

2 голосов
/ 20 апреля 2011

Попробуйте взглянуть на File.listRoots(). В сочетании с ANT Java-задача может дать желаемый результат.

2 голосов
/ 20 апреля 2011

Вы можете использовать getParent()

File f = new File(System.getProperty("user.home"));
f.getParent();//this would return the parent of user home which you need.

В вашем обновлении:

You can use [File.listRoots()][2]
1 голос
/ 20 апреля 2011

Еще один интересный класс - FileSystemView. Он содержит специфичную для ОС информацию о специальных файлах, таких как элемент рабочего стола или узел «Мой компьютер»:

    final javax.swing.filechooser.FileSystemView fileSystemView = javax.swing.filechooser.FileSystemView.getFileSystemView();
    File[] roots=fileSystemView.getRoots();

вы можете использовать этот класс для проверки, является ли файл узлом накопителя или дисководом гибких дисков, и, кроме того, с помощью isTraversable вы можете проверить, например, пустые приводы CD-ROM, то есть существующие корни, для которых File.listFiles () потерпит неудачу.

1 голос
/ 20 апреля 2011

Разве вы не можете просто использовать ${user.home}/../?

0 голосов
/ 12 мая 2011

Вот код листинга диска:

public static void main(String[] args) {
    for(File drive:File.listRoots())
        System.out.println(drive.getPath());
}
0 голосов
/ 20 апреля 2011

Использование File.listRoots()

Список доступных корней файловой системы.

Определенная платформа Java может поддерживать ноль или более иерархически организованных файловые системы. Каждая файловая система имеет корневой каталог, из которого все остальные файлы в этой файловой системе могут быть достиг. Платформы Windows, для Например, иметь корневой каталог для каждый активный диск; UNIX платформы имеют один корневой каталог, а именно "/".

Набор доступных корней файловой системы зависит от различных системных уровней такие операции, как вставка или извлечение съемных носителей и отключение или отсоединение физические или виртуальные диски.

0 голосов
/ 20 апреля 2011

Как насчет определения вашей собственной переменной? Смотрите здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...