首頁  >  問答  >  主體

java的 System.getProperty("user.home") 在 c#.net 里要怎么写?

巴扎黑巴扎黑2766 天前792

全部回覆(1)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 15:52:47

    不同版本的java這個變數的定義不一樣。
    在java7和先前的版本中,jvm環境變數 user.home 在 windows 系統中被定義為 desktop 資料夾的上級目錄。而 desktop 的位置則是從登錄機碼的HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell FoldersDesktop 處讀取,其值一般為 %userprofile%desktop 。因此其上級目錄,即 user.home 一般就被映射為 %userprofile% ,即 c:documents and settingsyourusername 或 c:usersyourusername 。這在win7裡容易出現被解析成 %userprofile% 字串而不會再解析成目錄路徑的bug:http://bugs.java.com/view_bug.do?bug_id=4787931 。
    因此java8中對該問題進行了修復,直接將 user.home 映射系統 %userprofile% 變量,一般是用戶主目錄,即 c:usersyourusername 。
    綜上所述,直接把這個變數當成是系統的環境變數 userprofile 好啦:
    Environment.GetEnvironmentVariable("userprofile");

    Environment.GetFolderPath(Environment.SpecialFolder.

    回覆
    0
  • 取消回覆