2013-07-29 16 views
6

Non riesco a creare un collegamento simbolico a una directory in Java. Sto usando il metodo createSymbolicLink() dalla classe Files: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.htmlCreazione di un collegamento simbolico con Java

Percorsi assoluti:

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

Mi aspetterei che un collegamento in la directory /some/path/xxx/ viene creata nella cartella /some/path/target, ma viene creato un collegamento da /some/path/xxx/linkname a /some/path/xxx/target. Non riesco a capire cosa sto sbagliando.

Quando creo un collegamento da /some/path/linkname a /some/path/target, tutto funziona come previsto.

Qualsiasi aiuto è molto apprezzato.

EDIT: Ecco il mio codice:

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

Il "records.path" e "webserver.root" sono entrambi i percorsi relativi.

In realtà ho appena trovato una soluzione al problema: Funziona se faccio questo:

records = records.toAbsolutePath(); 

ho assunto la createSymbolicLink() utilizzerà percorsi assoluti per creare i collegamenti, che era sbagliato.

+1

Puoi pubblicare il tuo codice? –

+1

Ho trovato una soluzione. Vedi post modificato. – omnibrain

+2

Si prega di non modificare le domande per inserire le risposte lì. Anche se hai trovato la risposta alla tua domanda, la metti in una risposta adeguata. –

risposta

6

ho trovato la soluzione al problema: Funziona se faccio questo:

records = records.toAbsolutePath(); 

ho assunto createSymbolicLink() userà percorsi assoluti per creare i collegamenti, che era sbagliato.

+2

Non sei sicuro del motivo per cui stai convertendo da percorso a stringa in percorso - 'records = records.toAbsolutePath()' è equivalente. – Max

Problemi correlati