拆分冗余文件

时间:2013-10-17 08:47:37

标签: algorithm

我需要cmd工具或算法说明来执行以下操作:

给定任何大小的文件(大小<1GB)我需要将文件分成n个部分(n可以是任何合理的数字)和1个带元数据的文件。 元数据类似于RAID系统中的“奇偶校验”字节,这将允许我在文件的一部分丢失时恢复整个文件。因此,元数据是一种“额外”或冗余信息,有助于恢复原始文件。 其他n个部分不应该有任何额外的信息。

目前,我尝试使用pacrhive和par2工具,但他们没有实现我上面描述的想法。 此外,我试图进入前向纠错(FEC)和里德 - 所罗门代码,但也没有成功。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以应用与RAID 5几乎完全相同的内容(尽管适用于硬盘驱动器,但同样的逻辑适用)。

因此,将第1个字节发送到第1个文件,第2个到第2个,...,第n个到第n个,第(n + 1)个到第1个,第(n + 2)个到第2,等等。

然后将n个文件中每个位的奇偶校验放入最后一个文件,即:

1st bit of last file = 1st bit of 1st file
                   XOR 1st bit of 2nd file
                   XOR ...
                   XOR 1st bit of nth file

2nd bit of last file = XOR of 2nd bits of all the other files as above

这将允许您通过计算其余文件的奇偶校验来恢复任何文件(包括“元数据”文件)。