2012-01-09 3 views
4

のディレクトリを作成する私は既にファイルを作成して "user.home"に入れることに慣れています。私はMacにいるので、PCのフォルダについてよく知らないけど、私の図書館では、Application Supportがある。そのディレクトリをPCの%appdata%に配置する方法はありますか?アプリケーションサポートまたは%appdata%

+0

PCとは何ですか?あなたはMAC上で "Application Support"フォルダを取得しますか?またはWindowsの "ApplicationData"フォルダを取得しますか? – donnior

+0

彼は、デフォルトで現在のユーザーの '%APPDATA%'であるWindows上の "Application Data"フォルダを意味します。しかし、以前はWindowsの用語で "Application Support"について聞いたことはありません。ところで、 '%APPDATA%'はその内容を変更できるようにするには管理者権限が必要です。 'user.home'に相当するWindowsフォルダは'%USERPROFILE% 'です。任意のWindows環境変数を使用するには、単に 'System.getenv(string);'を使用してください。 'System.getenv(" USERPROFILE ");'または 'System.getProperty(" user.home ");' –

+0

単に 'user.home'の(サブディレクトリ)をパスとして使用しないのはなぜですか?それはOS X、Windows **お​​よび** * nixで動作するはずです。 –

答えて

4

WindowsのAppDataフォルダは "{user.home} \ Local Settings \ ApplicationData"です。

あなたはこれを使用してそれを得ることができます。

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

またはこれによって

が、それはWindowsでのみ動作しますですので、Windowsでのみ利用できたenv変数「APPDATA」。詳しくはフォア

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

、あなたはここでHow to get local application data folder in Java?

+0

最初のアプローチは言語に依存し、[この問題](http://stackoverflow.com/q/2134338/1804173)の影響を受けるので、2番目のアプローチははるかに信頼性が高くなければなりません。 – bluenote10

0

を、それをチェックアウトすることができますしたい場合は、あなたがそれを使用することができ、私が使用するコードです:

公共FileManagerの(){

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?

関連する問題