当前位置: 首页 > 面试题库 >

在Linux和Macintosh上查找“应用程序数据”的目录

范安歌
2023-03-14
问题内容

我有一个基于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上使用类似的文件夹,但是我不确定“用户。首页”找到正确的答案。


问题答案:

这应该工作。只是一件事:在Linux上,最好将设置保存在用户目录中的隐藏文件夹中。因此,对于Linux,要么将文件夹放在$ HOME /
.config下,要么以开头.以使其隐藏。



 类似资料:
  • 问题内容: 我使用G ++中的标准 ftell 和 fseek 选项 遇到 整数溢出,但是我想我错了,因为似乎 ftell64 和 fseek64 不可用。我一直在搜索,很多网站似乎都使用 lseek 和 off64_t 数据类型进行引用,但是我还没有找到任何引用等于 fseek的 示例。现在,我正在读取的文件是16GB + CSV文件,期望至少翻倍。 没有任何外部库,最简单的方法来实现与 fse

  • 问题内容: 如何在Grails中找到任意用户的主目录?在Linux上,通常是/ home / user。但是,在某些操作系统上,例如OpenSolaris,路径为/ export / home / user。 问题答案: 对于类似UNIX的系统,您可能希望使用shell 执行“ ”(因此可使用运行)。

  • 问题内容: 在基于OSGi的Java应用程序中,我正在开发一个捆绑软件,以使系统的其余部分可以访问文件系统。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。尚不确定该区域的用途,但不是用于首选项(由其他捆绑软件处理),但是可以用于存储在运行时可能会更改的数据。 我打算为此使用以下目录: Windows Vista和Windows 7:“ \ ProgramData”。 Wind

  • 问题内容: 在基于OSGi的Java应用程序中,我正在开发一个捆绑包,为系统的其余部分提供对文件系统的访问。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。尚不确定该区域的用途,但不是用于首选项(由其他捆绑软件处理),但是可以用于存储在运行时可能会更改的数据。 我打算为此使用以下目录: Windows Vista和Windows 7:“ \ ProgramData”。 Wind

  • 问题内容: 嘿,我一直在写一个程序(一种类似于电子书的查看类东西),它从可执行文件所在的文件夹中的一个文件夹中加载文本文件。这给我带来了一个问题,因为例如,如果我使用“ ./folder/folder/program”命令从另一个目录运行该程序,由于工作目录不正确,我的程序将找不到文本。我没有绝对目录,因为我希望该程序具有可移植性。有什么方法可以获取可执行文件正在运行的确切目录,即使它是从其他目录

  • 我已经为使用外部Tomcat的Spring Boot应用程序的JNDI数据源连接进行了bellow提到的配置。 context.xml类似 为spring boot定义了Application.Properties 更新了web.xml,如