當我在處理我的項目時,我收到了一個要求:我需要獲取系統用戶文檔文件夾(例如Windows的「我的文檔」和Linux的「文檔」)。我需要爲所有操作系統獲取它。我怎樣才能做到這一點?如何使用Java獲取獨立於操作系統的系統用戶文檔,圖片,音樂文件夾?
我可以通過使用System.getProperty(user.home)來獲取用戶根目錄。我需要一個使用Java的這個需求的解決方案。
當我在處理我的項目時,我收到了一個要求:我需要獲取系統用戶文檔文件夾(例如Windows的「我的文檔」和Linux的「文檔」)。我需要爲所有操作系統獲取它。我怎樣才能做到這一點?如何使用Java獲取獨立於操作系統的系統用戶文檔,圖片,音樂文件夾?
我可以通過使用System.getProperty(user.home)來獲取用戶根目錄。我需要一個使用Java的這個需求的解決方案。
我相信Java目前不提供這樣的功能,所以你將不得不實現自己的抽象,可以使用系統屬性來檢測運行時平臺併爲當前平臺選擇合適的工廠。然後工廠將返回平臺特定的文件夾。
默認系統「文檔」或「圖片」文件夾的位置依賴於操作系統,取決於分佈,取決於用戶設置。我可以提出的最接近的事情是開始查看用戶主目錄,您可以從System.getProperty("user.home")
獲得。
然後,您可以實現基於
System.getProperty("os.name")
操作系統名稱System.getProperty("os.arch")
操作系統架構的一些啓發式(應該是不感興趣)System.getProperty("os.version")
操作系統版本不僅這是否從操作系統到操作系統有所不同,但它也因用戶而異。我的建議是爲這些位置創建一個通用名稱的優先列表,然後搜索列表,返回列表中存在的第一個目錄。如果列表中沒有任何元素存在,那麼您將報告此類目錄不存在或給出其他類型的錯誤消息。提供一個配置文件或其他一些方式也可能是很好的,通過這種方式默認搜索可以在默認列表結果不足的情況下被覆蓋。