2010-05-24 72 views
0

當我在處理我的項目時,我收到了一個要求:我需要獲取系統用戶文檔文件夾(例如Windows的「我的文檔」和Linux的「文檔」)。我需要爲所有操作系統獲取它。我怎樣才能做到這一點?如何使用Java獲取獨立於操作系統的系統用戶文檔,圖片,音樂文件夾?

我可以通過使用System.getProperty(user.home)來獲取用戶根目錄。我需要一個使用Java的這個需求的解決方案。

回答

1

我相信Java目前不提供這樣的功能,所以你將不得不實現自己的抽象,可以使用系統屬性來檢測運行時平臺併爲當前平臺選擇合適的工廠。然後工廠將返回平臺特定的文件夾。

3

默認系統「文檔」或「圖片」文件夾的位置依賴於操作系統,取決於分佈,取決於用戶設置。我可以提出的最接近的事情是開始查看用戶主目錄,您可以從System.getProperty("user.home")獲得。

然後,您可以實現基於

  • System.getProperty("os.name")操作系統名稱
  • System.getProperty("os.arch")操作系統架構的一些啓發式(應該是不感興趣)
  • System.getProperty("os.version")操作系統版本
1

不僅這是否從操作系統到操作系統有所不同,但它也因用戶而異。我的建議是爲這些位置創建一個通用名稱的優先列表,然後搜索列表,返回列表中存在的第一個目錄。如果列表中沒有任何元素存在,那麼您將報告此類目錄不存在或給出其他類型的錯誤消息。提供一個配置文件或其他一些方式也可能是很好的,通過這種方式默認搜索可以在默認列表結果不足的情況下被覆蓋。

相關問題