2014-07-15 31 views
1

我一直在使用Files.getOwner()嘗試在網絡上製作文件夾的日誌,但是這樣做會返回一個如下所示的ID。如何從網絡獲取用戶名(Windows)?

S-1-5-21-1027050117-121514058-1707179805-77926 (Unknown)

會是什麼讓主人,而不是上面的ID的登錄名的最好方法?

回答

0

你可以試試System.getProperty("user.name");這將返回環境變量USERNAME

+2

我正在談論文件夾/文件所有者的用戶名,而不是系統運行程序的用戶名。 – Funkydiddykong

0

在Windows 7上使用JDK 8,當我在我剛剛創建一個文本文件運行下面的Java代碼

System.out.println(Files.getOwner(Paths.get("C:\\test\\test.txt"))); 

,我得到下面的輸出:

chris-PC\chris_2 (User) 

當克里斯 - 電腦我的電腦名稱和chris_2是我的Windows用戶帳戶。當我搜索這個問題時,我發現this post在某人遇到與使用samba映射驅動器相同的問題。鑑於有迴應如下:

據我所知,這是內部用戶ID的Windows時,它不能顯示 - >出於某種原因 - 它轉換成該真實用戶名。

我不知道Samba如何向Windows提供文件和文件夾所有者,但是 我想說Windows無法找到該用戶。該用戶存在於UNIX上的 ,它可能與訪問該共享的Windows機器 沒有任何關係。您可能必須以 的方式設置這兩個系統,這將允許它們共享用戶定義(例如,將它們都設置爲Windows域的 ),以便能夠在Windows上顯示用戶名。 (只是猜測)

所以,我不知道這個問題是否可以合理解決。

+0

好的,無論如何,謝謝。 – Funkydiddykong

相關問題