Задать вопрос

Как распокавать многотомный архив при помощи TAR в windows?

Приветстую. Делаю свой лаунчер для своих игр на C# и WinForm. Столкнулся с проблей хостинга для файлов самих игр. Из беасплатных решил выбрать только гугл диск, т.к. он оступен почти со всех стран, но у него ограничние на прямую загурзку не более 50 МБ, иначе вылазит предупреждение о большом файле и вместо фаула лаунчер качает страницу с этим предупреждением В итоге после продолжительного поиска альтернативного хостинга было решено остаться на гугл диске, но архивы с играми разбить на несоклько частей по 50 Мб. Теперь файлы скачиваются как надо, но для распаковки архивов с игрой я использую Tar, т.к. System.IO.Compression и System.IO.Compression.ZipFile на .Net 3.5 не работают и мне пришлось искать им аналог, так и выбрал для автоматической распаковки tar... Собстенно, проблема заключается в том, что как неискал информацию по распаковке, но так и не смог найти, как распаковать многотомный архив при помощи tar. Может кто в курсе, как это сделть?
Я предпинимал попытку №1: вручную разбить файлы по архивам и в коде распаковки указать все названия архивов и распаковывать по череди, но это занимает много времени и при обновлении игры придётся обновлять и лаунчер, т.к. в нём указаны все названия архивов, а в разных обновлениях то добавлю, то удалю и в итоге при сжатии получается каждый раз разное кол-во архивов...
Попытка №2: создать bat файл со списком всех архивов для распаковки и скачивать его вместе с игрой. Вполне неплохой вариант, но тоже неудобно каждый раз запаковывать файлы вручную по архивам и распаковывать архивы, вводя названия...
Ну или ещё как варинат, может кто знает какой бесплатный хостинг на замену гугл диску, с которого можно скачивать файлы напрямую без ограничения по весу (ну или до 1-2 гб)?
  • Вопрос задан
  • 341 просмотр
Подписаться Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Drno
используй нормальное хранилище, например у Hetzner есть уже готовый Nextcloud
или S3
или FTP
или какой то webdav....
но логичнее просто по Https раздавать, с моей точки зрения
Ответ написан
@rPman
у tar нет поддержки многотомных архивов, идеологически если ее и реализуют то делят итоговый архив просто на части без какого либо формата (порядок в именах файлах)

гугли поддержку zip, она точно реализована для старых версий .net и в любом случае это оверкил, тебе нужен просто любой способ хранения файлов внутри других файлов с поддержкой томов (кстати тоже не обязательно, если файлы внутри архива никогда не превышают размер тома, то можно приблизительно собирать файлы в тома, чтобы влезали без их разделения).

Почему современные 'программисты' пасуют перед очень простыми задачами и при этом пилят достаточно сложные приложения. Эту задачу должны делать как курсовая в на первом курсе обучения - создать свой архиватор без поддержки сжатия, только имена файлов и несколько томов. Кода тут кот наплакал. А если допустить хранение списков файлов и порядка разделения на тома в отдельном файле (тебе же без разницы) то формат становится ну очень простым.

Предлагаю запилить такой формат как сериализованная метаинформация об архиве (количество и размер томов с именами файлов в нужном порядке + список файлов в архиве, для каждого файла crc+список кусков где он находится - это номер тома + смещение+размер куска, да это избыточно но просто). А файлы хранить просто линейно друг за другом, разделяя по окончанию места в томе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы