2012-09-20 24 views
0

我只想知道......這段代碼是否可以在linux和mac以及windows上工作?這個appdata的方法是否也適用於linux?

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

我問的原因是因爲我知道windows管理appdata與Mac和linux不同。

+0

該代碼似乎未使用集成Java API中的任何內容;這是什麼代碼? – Vulcan

+0

這就是我發現在快速搜索中獲得appdata目錄的原因。你會用什麼代碼? – Mad3ngineer

+0

那麼,這甚至不是Java,所以我會首先使用正確的(?)語言。至於你所展示的C#代碼,我不知道它是否可以跨越操作系統。在Java中,我總是簡單地使用unix home來存儲應用程序數據。 – Vulcan

回答

4

在Java中,在Windows和Unix操作系統之間如何獲取應用程序數據目錄存在差異。至於C#,您的示例代碼所在的語言(儘管問題被標記爲「java」),但我不能肯定地說。

在過去,我一直使用Windows上的AppData文件夾,並簡單地使用unix系統的unix home。

public static String getAppDataPath() { 
    if (System.getProperty("os.name").contains("Windows")) { 
     return System.getenv("APPDATA"); 
    } else { 
     return getUnixHome(); 
    } 
} 

public static String getUnixHome() { 
    String home = System.getProperty("user.home"); 
    return home != null ? home : "~"; 
} 

另外請注意,在UNIX系統上,最好是使應用程序數據在用戶的家隱藏的,所以你應該.開始在Mac和Linux文件。

+0

謝謝你的答案,我認爲代碼是java。 – Mad3ngineer

+0

不用擔心,我們都會犯錯誤。如果您將答案選爲最終答案,請不要忘記將答案標記爲已接受。 – Vulcan

+0

完成!謝謝你教我做到這一點。 – Mad3ngineer

1

'appdata'的概念是Windows特有的概念。雖然Linux和OSX系統有一些存儲數據的約定,但沒有人稱它們爲'appdata'。在Linux或OSX上,編寫名稱以'。'開頭的文件並不罕見。進入主目錄。在OSX上,還有一個詳細的Apple特定的系統偏好設置。

您可能僅僅考慮使用Java Preferences API並且根本不處理'appdata',除了JVM的Windows實現決定如何處理它。

相關問題