2010-06-22 61 views

回答

4

這一個是討厭。有沒有獲取文件所有者的標準方法(至少包括Java 6,它是OSX的當前生產版本)。現在最簡單的方法是使用ProcessBuilder以文件名作爲其參數執行對stat的調用,然後解析將從子進程標準輸出通道返回的結果。解析結果時必須小心,因爲OSX上的用戶名可能有空格。

或者,使用JNI。

16

直到Java 7纔可能。對於Java 7,您可以使用Files#getOwner()

Path   path  = Paths.get("/path/to/file.ext"); 
UserPrincipal owner = Files.getOwner(path); 
String  username = owner.getName(); 

此前的Java 7,最好的辦法是在運行一些平臺的本地代碼組合命令或JNI。

參見:

相關問題