Я хотел бы добавить большое количество файлов с разными именами из разных папок в один 7-Zip архив, используя 7za.exe
. Это должно быть просто, но оказалось большой болью.
Я создал файл, содержащий пути (7za a out.7z @list.txt
), но если файлов слишком много (~100), происходит сбой. По-видимому, содержимое файла аргументов помещается в буфер командной строки [Edit: это, вероятно, дезинформация с моей стороны, в любом случае была не причина], что слишком мало (количество добавляемых файлов превышает миллион).
разделение процесса путем добавления файлов по одному не представляется возможным из-за способа 7za
работает: при добавлении следующего файла, он создает копию архива, добавляет файл в копию и, наконец, заменяет оригинал. Это ужасно медленно, как только архив получает пару 100 МБ в размере.
до сих пор я использую сочетание двух подходов добавив десяток файлов каждый раз в цикле, но это ненадежный Хак и все еще очень медленно. Есть ли лучший способ сделать это?
Я пытался использовать 7-Zip обертки DLL (я программист C#), но ни один из них не работал надежно, и мне неоднократно предлагали просто использовать 7za
вместо.