3

我应该在 Windows (Vista) 系统中的什么位置放置每个人(即计算机的每个用户)都应该可读和可写的数据?Vista 的 C:\Users\xxx\AppData\something、C:\Program Files 和 C:\ProgramData 目录和 UAC 的概念有点混乱。

此外,是否有任何现成的解决方案可以使用 Java 确定这些位置?我想它需要与本机库进行一些交互,因为 System.getProperties 只有 user.home 和 user.dir,它们都不是全局可写的。

4

4 回答 4

5

在 vista 中 c:\ProgramData 是这个位置,它取代了 XP 中的 C:\Documents and Settings\AllUsers\AppData。

我不确定在 java 中执行此操作的细节。但是,如果您能掌握它,ALLUSERSPROFILE 环境变量会为您提供路径。您应该始终使用它而不是硬编码路径,因为文件夹名称在不同的国际化版本的操作系统上会发生变化。

于 2009-04-15T08:09:08.043 回答
5

如果您需要允许没有管理员权限的用户修改全局设置,那么正确的方法是为应用程序创建一个安装程序,并在安装期间设置“通用应用程序数据”文件夹的权限,以便允许用户区域写给它。

看到这篇文章:在哪里放置常见的可写应用程序文件?

于 2009-05-20T05:20:26.467 回答
2

除非数据真的很大,否则你可能想看看Preferences API;特别是Preferences.systemNodeForPackage。这为您提供了一个独立于平台、系统范围、后端不可知的存储设施,如果这就是您所追求的。

于 2009-04-15T08:55:12.067 回答
1

此外,是否有任何现成的解决方案可以使用 Java 确定这些位置?

您可以检查适当的环境变量,例如 %PROGRAMDATA%、%PROGRAMFILES% 等。

于 2009-04-15T09:00:05.940 回答