2013-07-29 4 views
6

Ich habe Probleme beim Erstellen einer symbolischen Verbindung zu einem Verzeichnis in Java. Ich bin mit dem createSymbolicLink() -Methode von der Files Klasse: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.htmlErstellen einer symbolischen Verbindung mit Java

Absolute Pfade:

  • Ziel: /some/path/target
  • -Link: /some/path/xxx/linkname

Ich würde erwarten, dass eine Verbindung in Das Verzeichnis /some/path/xxx/ wird im Ordner /some/path/target erstellt, stattdessen wird ein Link von /some/path/xxx/linkname zu /some/path/xxx/target erstellt. Ich kann einfach nicht herausfinden, was ich falsch mache.

Wenn ich einen Link von /some/path/linkname zu /some/path/target erstellen, funktioniert alles wie erwartet.

Jede Hilfe wird sehr geschätzt.

EDIT: Hier ist mein Code:

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(); 
} 

Die "records.path" und "webserver.root" sind beide relative Pfade.

Eigentlich fand ich nur eine Lösung für das Problem: Es funktioniert, wenn ich dies tun:

records = records.toAbsolutePath(); 

ich die createSymbolicLink() angenommen Pfade absolute verwenden Sie die Links zu erstellen, die nicht in Ordnung war.

+1

Können Sie Ihren Code posten? –

+1

Ich habe eine Lösung gefunden. Siehe den bearbeiteten Post. – omnibrain

+2

Bitte bearbeiten Sie keine Fragen, um Antworten dort zu platzieren. Selbst wenn Sie die Antwort auf Ihre Frage selbst gefunden haben, fügen Sie sie in eine richtige Antwort ein. –

Antwort

6

fand ich die Lösung für das Problem: Es funktioniert, wenn ich dies tun:

records = records.toAbsolutePath(); 

Ich nahm createSymbolicLink() absolute Pfade verwenden Sie die Links zu erstellen, die nicht in Ordnung war.

+2

Nicht sicher, warum Sie von Pfad zu Zeichenfolge in Pfad konvertieren - "records = records.toAbsolutePath()" ist gleichwertig. – Max

Verwandte Themen