0

知りたいのですが... このコードは Windows だけでなく Linux や Mac でも動作しますか?

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

私が尋ねる理由は、Windows が Mac や Linux とは異なる方法で appdata を管理することを知っているからです。

4

2 に答える 2

4

Java では、Windows と UNIX オペレーティング システムでアプリケーション データ ディレクトリの取得方法に違いがあります。C# については、コード例の言語 (質問に「java」というタグが付いているにもかかわらず) は、はっきりとは言えません。

これまで、私は常に Windows では AppData フォルダーを使用し、UNIX システムでは単純に UNIX ホームを使用していました。

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 システムでは、ユーザー ホームの appdata を非表示にすることが望ましいため、Mac および Linux でファイルを開始する必要があることに注意してください。

于 2012-09-20T20:07:56.010 に答える
1

「appdata」の概念は、Windows 固有の概念です。Linux および OSX システムには、データを格納するための規則がいくつかありますが、それらを「appdata」と呼ぶ人はいません。Linux や OSX では、「.」で始まる名前のファイルを書き込むことは珍しくありません。ホームディレクトリに。OSX には、精巧な Apple 固有のシステム設定もあります。

Java Preferences API の使用を検討するだけで、「appdata」をまったく処理しない場合があります。ただし、JVM の Windows 実装がそれをどう処理するかを決定する場合を除きます。

于 2012-09-20T20:44:24.027 に答える