Uso Oracle Java 7 su Windows 64 bit.Come forzare Java 7 a creare "collegamenti simbolici di directory" su Windows invece di "file symlinks"?
Quando creo un link simbolico utilizzando Files.createSymbolicLink, ho notato questo comportamento:
- Se il bersaglio è una directory, un "directory collegamento simbolico" è stato creato.
- Se la destinazione è un file, viene creato un "file symlink".
- Se la destinazione non esiste, viene creato un "file symlink".
The type of the symlink is fixed and never changes, indipendentemente da eventuali modifiche al target.
Utilizzando il comando nativo di Windows mklink
, è possibile forzare il tipo di collegamento come "link simbolico di directory". È possibile raggiungere questo obiettivo utilizzando l'API Java nativa o una libreria?
Un modo banale e brutta è:
- Se il bersaglio è una directory, basta creare il link
- Se la destinazione non esiste, creare una nuova directory di destinazione vuota, creare il collegamento, ed elimina la directory.
- Se il target è un file ... gestirlo (spostarlo, applicare # 2, spostarlo indietro).
Fugly.
In realtà non c'è un grande bisogno, ho appena scoperto questo comportamento tramite un bug nel mio programma che ha causato la non creazione della destinazione del link simbolico. – ripper234