【发布时间】:2013-08-22 06:19:56
【问题描述】:
不知道怎么问,所以我解释一下情况。
我需要存储一些压缩文件。最初的想法是创建一个文件夹并根据需要存储尽可能多的压缩文件,并创建一个包含每个压缩文件数据的文件。
但是,我不允许创建多个文件,并且必须只有一个。我决定创建一个压缩文件,它有一个关于进一步数据的标题,并且在标题之后保留压缩数据。但是这个选项有缺点,例如创建后编辑此类文件需要很长时间,因为即使我想再添加一个小文件,也必须完全重写它。
所以,正如我想象的那样,我需要创建具有一些特定属性的文件夹并在其中创建尽可能多的文件。这甚至可能吗?
我正在为 Windows 创建一个应用程序,因此我可以使用任何适用于 Windows 的东西,并且我正在使用 C++ 进行编码。
注意:需要单个文件,因为例如,它将通过电子邮件发送并且附加许多文件不是理想的解决方案。
注意:我不需要压缩算法,我需要一些方法来有效地将所有内容存储在单个文件中。
【问题讨论】:
-
您可以使用Structured Storage 来实现这一点(但您不能对它们使用常规文件函数)。
-
由于是Windows,所以可以使用Alternate Data Streams
-
出于好奇,为什么您需要创建比您允许的更多的文件,以及对一个文件的限制首先来自哪里?在您创建一个复杂的解决方案(从长远来看,这将更加难以维护)之前,您是否已验证 (a) 您不能以不同的方式设计您的程序,或者 (b) 你不能说服你的客户允许你创建一个常规目录(毕竟这可能是他们最好的)?
-
@stakx 常规目录是不允许的,但我已经为单个二进制文件创建了结构,但速度不快。
-
@user2623967:我已经明白了;我的问题是:为什么不允许这样做,为什么你仍然需要这样做? (有时质疑现状并与/说服人们接受不同的做事方式是值得的,从长远来看这可能会更好。)
标签: c++ windows file winapi directory