У меня есть множество файлов .tar.gz размером около 5 ГБ. Я заметил, что .NET GZipStream на самом деле застревает в бесконечном цикле, пытаясь распаковать их.
Я нашел чистый код C#, но у всех были проблемы с размером моих файлов. В отличие от других плакатов (24GB tar.gz Распаковка с использованием Sharpziplib), я компилирую приложение как 64-битное приложение .NET 4.5.1 на 64-битной машине.
Я заметил, что .NET 4.5.1 снимает ограничение в 2 ГБ ... но после прочтения обнаружил, что это вводит в заблуждение, похоже, что на самом деле он удаляет все вложенные части объекта, не имея возможности использовать более 2 ГБ, но фактически адресуемый диапазон для таких объектов, как массивы байтов, по-прежнему кажется 2 ГБ даже с включена соответствующая опция
Есть ли у кого-нибудь какие-либо решения или я столкнулся с ограничением в С#? Я могу вызвать 64-битную 7ZIP DLL из своего приложения или вызвать 7ZIP .exe и дождаться его завершения (что-то вроде бреда), но должен ли быть более чистый способ? Также мне нужна самая быстрая распаковка и желательно что-то в чистом коде С#, но в настоящее время я думаю, что это невозможно в С# (из-за ограничений адресного диапазона массивов байтов)