2012-01-09 53 views
4

我已經很熟悉創建文件並將它們放在「user.home」中。我在Mac上,所以不太瞭解PC的文件夾,但在我的庫中有應用程序支持。有沒有一種方法可以在PC的%appdata%中放置一個目錄?在應用程序支持或%appdata中創建目錄%

+0

什麼是PC?你想獲得MAC上的「應用程序支持」文件夾嗎?或者在Windows上獲得「ApplicationData」文件夾? – donnior 2012-01-09 01:39:49

+0

他意味着Windows上的「Application Data」文件夾,默認爲當前用戶的'%APPDATA%'。但是,我從來沒有聽說過Windows術語中的「應用程序支持」。順便說一下,'%APPDATA%'需要管理員權限才能修改其內容。 'user.home'的等價Windows文件夾是'%USERPROFILE%'。要使用任何Windows環境變量,只需使用'System.getenv(string);'。例如:'System.getenv(「USERPROFILE」);''或'System.getProperty(「user.home」);' – 2012-01-09 01:45:59

+0

爲什麼不簡單地使用(user.home的子目錄)作爲路徑?這應該適用於OS X,Windows **和** nix。 – 2012-01-09 02:22:06

回答

4

Windows上的AppData文件夾是「{user.home} \ Local Settings \ ApplicationData」;

您可以使用此得到它:

String dataFolder = System.getProperty("user.home") + "\\Local Settings\\ApplicationData"; 

或通過這一點,但它僅適用於Windows,因爲環境變量「APPDATA」僅在Windows下可用。

String dataFolder = System.getenv("APPDATA"); 

富勒的更多信息,你可以檢查出來How to get local application data folder in Java?

+0

請注意,第一種方法是語言相關的,並受[此問題](http://stackoverflow.com/q/2134338/1804173)影響,所以第二種方法應該更加可靠。 – bluenote10 2015-06-07 11:57:53

0

這裏是我使用的代碼,你可以使用它,如果你想:

公共文件管理器(){

String FileFolder = System.getenv("APPDATA") + "\\" + "Launcher"; 

System.out.println("Searching for system"); 

String os = System.getProperty("os.name").toUpperCase(); 
if (os.contains("WIN")) { 
    FileFolder = System.getenv("APPDATA") + "\\" + "Launcher"; 
    System.out.println("Found windows"); 
} 
if (os.contains("MAC")) { 
    FileFolder = System.getProperty("user.home") + "/Library/Application " + "Support" 
      + "Launcher"; 
    System.out.println("Found mac"); 
} 
if (os.contains("NUX")) { 
    FileFolder = System.getProperty("user.dir") + ".Launcher"; 
    System.out.println("Found linux"); 
} 

System.out.println("Searching for resource folder"); 
File directory = new File(FileFolder); 

if (directory.exists()) { 
    System.out.println("Found folder"); 
} 

if (directory.exists() == false) { 
    directory.mkdir(); 
    System.out.println("Could not find folder so created it"); 
} 

}

只有在Windows上測試過,有人可以在mac/L上測試它inux的?

相關問題