【发布时间】:2011-09-27 12:26:25
【问题描述】:
我有一个基于 LWJGL 的游戏引擎,要运行它,我需要将所需的本机库放到用户的计算机上。在 Windows 上,我通过以下方式找到 Application Data 目录:
System.getenv("APPDATA");
一切都可以轻松而顺利地运行。我创建一个 File 对象,如果需要,调用 mkDir,如果文件还没有在机器上,则写入它们。
(注意:创建的目录不应该是临时文件,因为我想保存提取的文件以供将来运行。此外,创建此目录为保存的游戏和其他类似文件提供了一个简单易用的文件夹数据。)
但是,如果计算机是 Macintosh 或 Linux,我想做类似的事情,但我不熟悉如何使用这两个系统,而且我也不是一个很好的测试位置。我目前查找目标目录的方法是这样的:
private static String defaultDirectory()
{
String OS = System.getProperty("os.name").toUpperCase();
if (OS.contains("WIN"))
return System.getenv("APPDATA");
else if (OS.contains("MAC"))
return System.getProperty("user.home") + "/Library/Application "
+ "Support";
else if (OS.contains("NUX"))
return System.getProperty("user.home");
return System.getProperty("user.dir");
}
那么,这是正确的做法吗?我正在尝试访问 Mac 上的应用程序支持(我了解到这相当于 Windows 上的 AppData 文件夹)并且我正在尝试在 Linux 上使用类似的文件夹,但我不确定“user. home" 找到正确的。
【问题讨论】:
-
对于 linux,您可能应该遵循 XDG basedir 规范。
标签: java linux macos file directory