防止应用程序用户弄乱应用程序文件的最佳方法是什么?

问题描述 投票:0回答:1

假设有一个应用程序仅在

~/home/app
目录中创建目录。
例如,该应用程序还将与其创建的目录相关的存储在
~/home/app
meta.json 中。 作为开发人员,用户很难删除文件夹或编辑 meta.json,因此只能通过应用程序更改这些内容。

如何创建一些“容器”目录,它对用户来说充当“未知文件”,但可以很容易地被应用程序“挂载”为目录?

例如有

*.kra
文件(由 Krita 创建),我可以用 zip 打开,尽管它不是存档,或者像
Appimage
文件一样可以作为目录读取。
这背后的机制是什么?我如何创建像文件一样的文件夹?我如何创建一些像
blob.myapp
这样的文件,它只是一组文件和目录。

linux windows operating-system filesystems
1个回答
0
投票

AppImages 是自解压二进制文件,并附加有 squashfs 文件系统。文件系统是使用 FUSE 私有挂载的,因此只有程序及其子程序才能看到挂载目录的内容。另一方面,Krita 文件只是具有不同扩展名的 ZIP 文件。

您可以尝试 AppImage 的方法并使用 FUSE 挂载存档(例如使用 archivemount),但这仅适用于 Linux。

或者,您可以像 Krita 一样将数据存储在存档中。当程序启动时,您会读取存档并将所有内容保存在 RAM 中。当您的程序完成时(或定期完成以避免数据丢失),您将数据存储回存档中。

在实践中,所有这些都是值得的。相反,您应该将数据存储在正确的位置[1],这些位置通常对用户是隐藏的。如果用户弄乱了文件,那是他们的责任。


[1] 用户数据通常存储在 Windows 上的

%localappdata%
中或 Linux 上的
$XDG_CONFIG_HOME
/
$XDG_DATA_HOME
/
$XDG_STATE_HOME
中(取决于数据类型 - 避免使用用户的主目录)。

© www.soinside.com 2019 - 2024. All rights reserved.