Jak*_*akg 5 java macos file file-location
我希望我的应用程序将一些数据(例如配置、缓存、许可证等)写入共享的、所有用户可访问的位置。
在 Windows 上我已经这样做了%PROGRAMDATA%。
在 MacOS 上,我的研究建议使用该Library/Application Support目录。
虽然特定于用户的~/Library/Application Support工作正常,但非特定于用户的/Library/Application Support似乎不可写入?
例子:
Files.writeString(Paths.get("/Library/Application Support/myfile.txt"), "hello world")
Run Code Online (Sandbox Code Playgroud)
抛出异常:
java.nio.file.AccessDeniedException: /Library/Application Support/myfile.txt
Run Code Online (Sandbox Code Playgroud)
此类数据有更好的目的地吗?
macOS 上确实没有类似的东西。存储此类内容的最佳位置可能是 /Users/Shared(请参阅Apple 开发者论坛上的此帖子),但它也不完全理想。
\n\n需要注意的一件事是权限:/Users/Shared 设置了“粘性”位,这意味着用户无法删除(或重命名)他们不拥有的文件。您可能需要为应用程序的文件创建一个子目录,以便您可以通过该子目录控制对文件的访问。您还必须注意文件权限,因为默认情况下所有者(创建文件或文件夹的用户)拥有完全访问权限,而其他人则为只读。您可能想要执行一些操作,例如将组设置为“staff”并向该组和所有者授予写入权限。
\n\n另一个后果是:计算机上的每个人(以及几乎所有东西)都可以对其进行写访问,并且可以制造他们想要的任何混乱。访问权限不限于您的应用程序(尽管沙盒应用程序通常无权访问)。请参阅开发线程中 Quinn \xe2\x80\x9cThe Eskimo!\xe2\x80\x9d\ 的警告。
\n| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |