如何将未压缩的文件夹视为压缩文件



我们都知道将压缩文件视为文件夹的第三方或操作系统内置工具。但有人知道如何做相反的事情吗:欺骗操作系统,让它认为包含一些文件的标准文件夹实际上是一个压缩文件?寻求针对Windows、Linux和Mac的解决方案(尽管我意识到没有一个单一的解决方案可以在所有这些平台上工作)。

问题的背景是让SVN、Git或Mercurial等源代码版本控制系统更有效地存储实际上是压缩文件夹(包含各种XML文件、一点元数据和一两个缩略图)的文档版本之间的差异,例如ODT和DOCX。

我已经知道Zipdoc和类似的utils,它们使用Git和Mercurial编码/解码挂钩将数据转换到存储库中或从存储库中转换出来。这是一个很好的解决方案,但我发现自己想浏览包含文档中未压缩文件夹内容的存储库,并单独区分其中的文件。

这意味着必须将未压缩的内容添加到存储库中,而不是文档的tar或zipped无压缩版本。这反过来意味着从存储库签出会生成一个未压缩的文件夹,其中包含表示文档的文件。因此,我提出了最初的问题。

我设想的神秘产品会检测到一个文件夹的名称包含一个"注册"的扩展名(例如"docx"),然后将其"重新安装"为同名的压缩文件。

或者,有人知道如何利用Git/Mercial编码/解码挂钩来实现这个梦想吗?

为了以一种很好的方式解决这个问题,您可以使用带有nsmux的Hurd翻译器-尽管更改内核可能是一个很大的步骤:)

→http://www.gnu.org/software/hurd/hurd/translator/nsmux.html

您也许可以调整tarfs翻译器。这将允许您通过folder,,zip打开文件夹。

但这需要相当多的工作。

(这是一个非常简单的用例的好例子,指向一个相当复杂的问题)

此程序可以帮助您:

https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXmlUnpack.exe

源代码:

https://bitbucket.org/htilabs/ooxmlunpack

您必须配置此程序处理所有文件的路径
执行程序后,它将

  • 解压缩所有office文件(xlsx、xlsm、docx…)
  • 在没有压缩的情况下再次压缩(=TAR球)

毕竟,你有"相同"的文件,现在需要更多的磁盘空间(但仍然可以使用Word/Excel)。但在这种状态下,这些文件中的更改只需要存储库中最小的磁盘空间(因为它们不再是"二进制"的)
作为一种废物,你也有提取的内容,如果需要,可以删除。

另请参阅版本控制压缩文件(docx,odt)

相关内容

  • 没有找到相关文章

最新更新