2013-07-29 21 views
6

Mam problem z utworzeniem dowiązania symbolicznego do katalogu w Javie. Używam metody createSymbolicLink() z klasy Files: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.htmlTworzenie dowiązania symbolicznego za pomocą Java

bezwzględne ścieżki:

  • docelowa: /some/path/target
  • Link: /some/path/xxx/linkname

ja spodziewałbym się, że ogniwo katalog /some/path/xxx/ jest tworzony do folderu /some/path/target, ale zamiast tego tworzone jest łącze z /some/path/xxx/linkname do /some/path/xxx/target. Po prostu nie mogę zrozumieć, co robię źle.

Po utworzeniu łącza od /some/path/linkname do /some/path/target wszystko działa zgodnie z oczekiwaniami.

Każda pomoc jest bardzo doceniana.

EDIT: Oto mój kod:

Path records = Paths.get(Properties.getProperty("records.path")); 
Path recordsLink = Paths.get(Properties.getProperty("webserver.root") + System.getProperty("file.separator") + records.getFileName()); 
try { 
    Files.createSymbolicLink(recordsLink, records); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

W "records.path" i "webserver.root" są zarówno ścieżki względne.

Właściwie Właśnie znalazłem rozwiązanie problemu: To działa, jeśli mogę to zrobić:

records = records.toAbsolutePath(); 

I przyjęto createSymbolicLink() użyje ścieżki bezwzględne do tworzenia więzi, co było złego.

+1

Czy możesz opublikować swój kod? –

+1

Znalazłem rozwiązanie. Zobacz edytowany post. – omnibrain

+2

Nie edytuj pytań, aby tam umieścić odpowiedzi. Nawet jeśli znalazłeś odpowiedź na swoje pytanie, zrób to we właściwej odpowiedzi. –

Odpowiedz

6

znalazłem rozwiązanie problemu: To działa, jeśli mogę to zrobić:

records = records.toAbsolutePath(); 

Przypuszczałem createSymbolicLink() użyje ścieżki bezwzględne do tworzenia więzi, co było złego.

+2

Nie wiem, dlaczego konwertujesz ścieżkę do łańcucha na ścieżkę - jest to 'records = records.toAbsolutePath()' równowartość. – Max

Powiązane problemy