Estoy usando Oracle Java 7 en Windows 64 bit.¿Cómo forzar a Java 7 a crear "enlaces simbólicos de directorios" en Windows en lugar de "enlaces simbólicos de archivos"?
Cuando se crea un enlace simbólico utilizando Files.createSymbolicLink, noto este comportamiento:
- Si el destino es un directorio, un "directorio de enlaces simbólicos" se crea.
- Si el destino es un archivo, se crea un "enlace simbólico de archivo".
- Si el destino no existe, se crea un "enlace simbólico de archivo".
The type of the symlink is fixed and never changes, independientemente de cualquier cambio en su objetivo.
Usando el comando nativo mklink
de Windows, es posible forzar el tipo de enlace para que sea un "enlace simbólico de directorio". ¿Es posible lograr esto usando la API Java nativa o alguna biblioteca?
Una forma trivial y fea es:
- Si el destino es un directorio, basta con crear el enlace
- Si no existe el objetivo, crear un nuevo directorio de destino vacío, crear el enlace, y borra el directorio.
- Si el objetivo es un archivo ... manejarlo (moverlo, aplicar # 2, moverlo hacia atrás).
Fugly.
En realidad no hay una gran necesidad, acabo de descubrir este comportamiento a través de un error en mi programa que hizo que no se creara el destino del enlace simbólico. – ripper234