【问题标题】:manipulate files within a rar file操作 rar 文件中的文件
【发布时间】:2013-02-26 13:22:14
【问题描述】:

我下载了一部电影,由于它的大小,它被分成了 5 个 rar 文件。该文件的前 4 个部分是从一个站点下载的,而第 5 个文件是从另一个站点下载的,因为指向原始站点中第五个文件的链接已损坏。问题是第五个文件在子文件夹中,而前四个文件在根文件夹中,所以我无法合并文件以获取 avi 文件。 有没有办法可以操纵第五个文件并将其移动到根文件夹? Part1.avi Part2.avi Part3.avi Part4.avi 子文件夹\part5.avi

我最后的办法是从第二个站点重新下载文件的前 4 部分,但如果可能的话,我想避免这种情况。

TIA

【问题讨论】:

    标签: rar


    【解决方案1】:

    最简单的做法是也下载这 4 个其他部分。我看到了可能使其复杂化的问题,但这是可能的。

    首先要问自己,每个可用的 RAR 文件中有多少数据?这两个 RAR 集是否相同?可能不是。 Set 2 存储了路径,因此使其更大。两组中哪一组包含的数据最多?如果是第一组,那么您也需要从第二组下载第 4 部分,否则会有大量您没有的数据。

    第二个问题:档案压缩与否?如果第一组是,则问题不大,但如果使用压缩,我看不到打开第二组的可能性。你说的是电影,所以除非是白痴打包电影,否则我猜不会使用压缩。

    可以在文件夹中存储一个 nfo 文件,但积极的是,您将在第 5 部分中拥有比需要更多的数据,但我希望无论如何都是这样。

    这是我对最佳情况的实验:存档中的数据大小相同,并且不使用压缩。我解决这个问题的想法是使用十六进制编辑器编辑第 5 部分中的名称,但是不,我创建的档案没有相同的数据,所以它会与您的设置相匹配。

    我创建了测试文件。我重命名了第 5 部分以匹配第一组:尝试提取时出现 CRC 错误。这是因为第 5 部分的数据太多。撤消重命名。 从第一组中提取部分电影:使用 WinRAR 进行提取时,选中其他部分中的“保留损坏的文件”框。

    要从最后一个 RAR 文件中获取数据,请使用以下工具:hachoir-wx

    打开文件[0]/块并右键单击compressed_data。选择 Dump To Disk.... 现在您的电影分为 2 部分仍需要合并,但第 2 部分的数据有点过多。

    接下来您需要将正确的字节复制到一个新文件中。这是计算需要从文件 2 中删除的内容的公式:

    (size part 1) + (size part 2 - X) = total size movie file
    

    总文件大小可以从 WinRAR 中读取。您拥有的其他尺寸和 X 可以计算出来。

    您可以通过编写一个小脚本来连接这两个文件,或者您可以使用十六进制编辑器来完成。 Python 脚本可能如下所示:

    folder = "C:\movie"
    name_part_1 = os.path.join(folder, "movie_part1.avi")
    name_part_2 = os.path.join(folder, "movie_part2.avi")
    out = os.path.join(folder, "good_name.avi")
    x = 1337
    
    with open(out, "wb") as good:
        with open(name_part_1, "rb") as one:
            good.write(one.read())
        with open(name_part_2, "rb") as two:
            two.seek(x)
            good.write(two.read())
    

    【讨论】:

    • 我在尝试安装 hach​​oir-wx 时收到以下错误没有为 wxPython 找到本地包或下载链接>=2.6.3 最佳匹配:无'
    • 这意味着你必须先安装wxPython。
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2019-05-23
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多