好的,我在问这个问题之前就已经想过,因为起初听起来确实像是一个古老的问题,可以归结为“是否有可能在存档中写入内容”.我是Mac OS X的新手,但我已经阅读过应用程序只是一个带有.app扩展名和特定文件结构的文件夹.因此,我想知道是否可以在此文件夹中写入内容,以及如何写入.
我问的原因是因为在我的Java程序中,在Windows上,它会读取程序目录中的某些文件(“程序文件”的原理),但在OSX应用程序上似乎没有创建任何文件(很明显)-因此我猜想他们必须将它们存储在.app文件夹中!如果我以为是错的话,我想知道应用程序通常在哪里存储他们创建的文件.
提前致谢
编辑我问这个问题的全部原因是因为如果我的应用程序留下文件,我担心会得到负面反馈,所以我确实需要翔实的见解.简而言之,我的应用程序需要一个配置文件,但它也允许用户创建自己的“数据库”.我现在认为我将这些文件存储在用户的文档文件夹中,但是我不确定在删除应用程序时应该删除这些文件还是直接保留它们.显然,删除它们将需要我制作一个软件包-这对用户来说只是一个额外的步骤,所以您怎么看?…哦,是的,当用户输入有效的序列号时,应用程序会生成许可证文件-在Windows上,信息存储在注册表中,但是在Mac上,我不确定将包含此信息的文件放在何处!任何帮助将非常感激.
解决方法:
您不应该写应用捆绑包.原因不分先后:
>用户可能没有写权限.实际上,该应用程序捆绑包可以位于只读媒体上.
>该应用程序包并非特定于用户.它可能位于共享位置,并由系统上的所有用户使用.
>应该对应用进行代码签名,并且修改其内部结构可能会使签名无效.
放置用户数据的适当位置在用户的Documents文件夹中,在〜/ Library / Application Support的特定于产品的子目录中(或者,如果是系统范围,则在/ Library / Application Support中),或在某个位置用户选择的内容.
如果用户删除该应用程序,我不会太担心将文件留在后面.这很普遍,甚至是可取的.例如,如果我在安装新版本之前删除了旧版本,则希望新版本查找旧版本剩余的现有文件.如果您遵循典型的约定,则用户将知道如何清理(或类似AppZapper的清理工).
标签:java,macos,file,location
来源: https://codeday.me/bug/20191011/1896073.html