我在Windows 64位上使用Oracle Java 7。如何強制Java 7在Windows上創建「目錄符號鏈接」而不是「文件符號鏈接」?
當我創建使用Files.createSymbolicLink一個符號,我注意到此行爲:
- 如果目標是一個目錄,「目錄符號鏈接」創建。
- 如果目標是文件,則會創建「文件符號鏈接」。
- 如果目標不存在,則創建「文件符號鏈接」。
The type of the symlink is fixed and never changes,無論其目標有任何變化。
使用Windows的原生mklink
命令,可以強制鏈接類型爲「目錄符號鏈接」。是否可以使用本地Java API或某個庫來實現此目的?
一個微不足道的和醜陋的方式是:
- 如果目標是一個目錄,只是創建鏈接
- 如果目標不存在,創建一個新的空目標目錄,創建鏈接,並刪除該目錄。
- 如果目標是一個文件...處理它(移動它,應用#2,將其移回)。
Fugly。
其實沒有什麼太大的需求,我只是通過程序中的一個錯誤發現了這種行爲,導致符號鏈接的目標不被創建。 – ripper234