2012-03-13 3 views
1

Можно ли переместить в каталог на один уровень вниз на Java?Перемещение в каталог на один уровень вниз

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

C:\Users\foo\ 

я могу использовать cd.., чтобы перейти к:

C:\Users\ 

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

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

+0

Я считаю, что 'C: \\ Users \\ foo \\ ..' разрешено, поэтому вы должны добавить его в путь. – Jon

+0

привет, пробовал путь workDirPath = Paths.get (System.getProperty ("user.dir") + "\\ .."); println out Path appending .. не подведет меня на один уровень. – sutoL

ответ

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 
+0

Большое спасибо за это! – Jef

1

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

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

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

Смежные вопросы