如何将文件放入文件中

时间:2015-02-04 15:12:48

标签: file-io

MS Word的.docx文件包含一堆.xml文件。

Setup.exe文件会吐出程序使用的数百个文件。

Zips,rars等也有很多压缩的东西。

那他们是怎么做的? MS Word或生成这些文件的其他程序必须做什么才能将文件放入文件中?

当我查看这个时,我得到了一堆关于压缩的结果,但是假设我想制作一个程序,将文件“包装”在文件中而不会使最终结果变小。我甚至还要写什么?

我不是要求/期望任何执行此操作的源代码,我只需要一个指针。根据我在这里提出的问题,您认为我有什么误解吗?

即使只是指向文章或某些文档的简单链接也会非常感激。

好的,我只想为普通文件提供一些标题,并将它们与实际文件的字节一起写入一个自定义文件中。你们非常乐于助人,谢谢!

2 个答案:

答案 0 :(得分:0)

从历史上看,Windows有许多技术可以支持这样的解决方案。这些通常称为复合文件或结构化存储。但是,我不认为较新的Office文档使用这些技术。我认为Office文件格式类似于具有不同扩展名的ZIP文件。如果您将扩展名为.docx的文件更改为.zip并使用您喜欢的压缩工具打开它,您将看到一堆文件夹和XML文件。

以下是一些指向不同文件格式描述的链接,这些文件格式创建了“文件中的文件”

答案 1 :(得分:-1)

至少在POSIX系统(例如Linux)上,文件只是字节的流(即序列)。并且你只能在结尾处增长(或缩小,即截断)它 - 没有办法在中间插入字节(不复制其余部分)。

你需要一些约定和一些额外的软件来处理它。

您可能对Sqlite感兴趣,它为您提供了一个库来处理某些(例如)*.sqlite文件作为SQL数据库

您还可以使用GDBM - 一个为您提供索引文件抽象的库。

libtar是一个操纵tar档案的库。另请参阅tardytar文件后处理器。