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

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

有帮助吗?

解决方案

在Vista中C:\ ProgramData是的地方,这个取代曾经被认为是C:\ Documents和Settings \ AllUsers的\应用程序数据在XP

我不知道在Java中这样做的具体..但是,在ALLUSERSPROFILE环境变量为您提供了路径,如果你能得到的那举行。你应该总是用这个来代替硬编码的路径,因为文件夹名称上的操作系统的不同国际化版本的变化。

其他提示

如果您需要允许不具有管理员权限来修改全局设置,用户则适当的做法是为应用程序创建一个安装程序,并在安装过程中的“通用应用程序数据”文件夹设置的权限,使用户区域允许写入。

请参阅这篇文章:如果把共同写的应用程序文件

除非数据非常大,否则您可能需要查看 首选项 API;尤其 Preferences.systemNodeForPackage. 。这为您提供了一个独立于平台、系统范围、与后端无关的存储设施(如果这就是您所追求的)。

  

此外,是否有任何准备   溶液,以确定那些位置   与Java?

您可以检查approrpirate环境变量,例如%PROGRAMDATA%,%PROGRAMFILES%等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top