是否有一种方法可以创建一个文件夹,该文件夹由操作系统(Windows, OS, Linux)解释为单个文件?



我需要这样做的原因是:例如:some_important_folder"里面有很多文件和文件夹文件夹中。用户通常可以浏览到"some_important_folder";文件夹,然后深入查看它的子文件夹和文件,就像在任何普通文件资源管理器中可以做的那样。但是由于在我的用例中,用户不需要与"some_important_folder"中的文件和文件夹进行交互。文件夹。因此,我想知道是否有办法隐藏"some_important_folder"中文件夹的复杂性。文件夹和显示给用户作为一个单一的文件。但是我的程序(用c++编写)仍然可以像正常一样访问其中的文件和文件夹,例如:"C:UsersuserDocumentssome_important_foldersomeFoldersomeFileThatUserDoesntNeedToKnow.exe"类似于。rar或。zip文件但由于"some_important_folder"文件夹可能非常大(超过TB),我不认为将整个文件夹转换为。zip文件是好的,因为它会从硬盘上占用大量冗余空间,并且过程会非常缓慢

你考虑过加密你的文件夹吗?这样,如果你想只使用你的c++应用程序访问文件夹,你可以传递密码/解密它,使你的应用程序是你唯一的访问该文件夹的点。

是的,windows和linux都有类似的技术。

在windows上,您可以使用"复合文件二进制格式"。它是一种通用的文件格式,在文件中提供类似文件系统的结构,用于存储任意的、特定于应用程序的数据流。事实上,早期的office文档文件格式就是基于这种技术。以下是来自微软和维基的文档链接。我相信你可以谷歌一些示例代码。

https://learn.microsoft.com/en us/openspecs/windows_protocols/ms cfb/53989ce4 - 7 - b05 4 f8d - 829 b - d08d6148375bhttps://en.wikipedia.org/wiki/Compound_File_Binary_Format

在linux上,您可以像前面提到的@stark那样将文件作为文件系统循环挂载。您可以谷歌"linux循环挂载文件",下面是我找到的第一篇文章:

https://www.jamescoyle.net/how-to/2096-use-a-file-as-a-linux-block-device

最新更新