2010-06-22 17 views

cevap

4

Bu hata çok kötü olduğunu. Bir dosyanın sahibini almak için no standart yöntem vardır (en azından OSX için geçerli üretim sürümü olan Java 6'ya kadar). Şu anda en kolay yol, stat numaralı aramayı argüman olarak dosyanın ismiyle çalıştırmak için bir ProcessBuilder kullanmak ve ardından alt işlemden standart çıktı kanalında döndürülen sonucu ayrıştırmaktır. Sonuç ayrıştırılırken dikkatli olunmalıdır, çünkü OSX'deki kullanıcı adları boşluk içerebilir.

Alternatif olarak, JNI'yi kullanın.

16

Java 7'a kadar bu mümkün değildir. Java 7 ile bunun için Files#getOwner() kullanabilirsiniz.

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

öncesinde Java 7'ye, en iyi bahis bazı platformu yerli koduyla birlikte bir komut veya JNI çalışıyor.

Ayrıca bakınız:

İlgili konular