在各种平台上创建文件的常见位置(非特定于用户)

时间:2011-10-24 11:17:37

标签: java android windows linux directory

我编写跨平台的Java应用程序,我需要一些可以存储一些文件的地方。这些文件将由另一个可能在另一个用户下运行的Java应用程序使用。这意味着我无法使用:

System.getProperty("user.home");

因为我可能没有读/写这些文件的权限。我需要的是一些方法来获取非用户特定的文件夹,其中每个应用程序可以创建/读取/删除文件(类似于Windows的“C:\ ProgramData”)。 是否有一种跨平台的方式来获取这样的文件夹(至少对于Windows和Linux),或者如果没有 - 获取Windows的这些文件夹的最佳方法是什么(应该适用于XP-7),Linux和Android 。 欢迎任何拼图。

1 个答案:

答案 0 :(得分:1)

我不知道这样的跨平台文件夹,所有用户都可以读取。但你可以:

  • 为每个操作系统定义一个特定文件夹,commons-lang可以帮助您确定平台(请参阅SystemUtils
  • 在应用程序启动期间检查当前用户的文件夹是否可读/写。

使用中央配置(为此安装定义数据交换文件夹)也可以是一个选项,但这取决于项目的打包。