ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
17 мая
795456 Топик полностью
Николай Коровин (19.11.2017 16:19 - 16:23, просмотров: 118) ответил Dingo на А вложенность архивов как контролировать? В вашем примере это tar.xz (zip.rar). Это система именований ил мира unix/linux. Что делаем в случае вложенного архива? По идее - надо отдать как имя. Или tar отдельно рассматривать?
Только для архивов, не имеющих собственного сжатия, которые лежат внутри сжималки, не умеющей много файлов. Т. е. zip.rar не рассматриваем на вложенность (это просто rar, в котором лежит просто файл), а tar.xz рассматриваем, потому что xz, gz и т. д. не имеют файловых имён внутри (сжимают тупо монолитный поток данных), а .tar не имеет сжатия (просто тела файлов с перечнем имён). Т. е. в общем случае рассматриваем одну систему хранения файлов (архиватор) внутри одного алгоритма сжатия (компрессор). И ровно одну, без матрёшек. Например:
Арх. Компр.
RAR  RAR -- собственные форматы RAR на то и другое, файл .rar
ZIP  ZIP -- собственные форматы ZIP на то и другое, файл .zip
TAR  GZ  -- сочетание TAR и GZ, файл .tar.gz или .tgz
TAR  raw -- голый несжатый TAR, файл .tar
raw  GZ  -- внутри только один файл, сжатый GZ, файл .gz
TAR  XZ  -- сочетание TAR и XZ, файл .tar.xz или .txz
и так далее. Tar внутри rar, zip и т. д. уже не рассматриваем на предмет содержимого, отдаём как просто файл. Думаю, GNU GPL на это навесить будет нормально, только номер версии можно ещё прикинуть. Опять же, там будет много копипасты с линуксовых библиотек, так что... Ладно, лиха беда начало. Я хотел на выходных позадрачивать синхронизацию потоков и я это сделал :) Правда, получился очень сильно не один уикэнд и адский ад в плане удержания в голове всех взаимодействий, включая все предусмотренные возможности конфликтного доступа и (надеюсь) отсутствие непредусмотренных. С одной стороны, в этом хорошо если я сам через год разберусь меньше чем за целый день, с другой, там вроде всё работает, остаётся копипастить и подключать другие алгоритмы в те же "разъёмы". В духовном плане нынешнее состояние дел является наследником того самого "велосипеда", потому что тоже пока ничего там нет, кроме враппера к unrar и dummy-доступа к директориям как к виртуальным архивам. Но только в плане общей идеи, потому что у него даже цель другая, не говоря уже о структуре. Технически между ними общего только компилятор и язык :) Больших усилий для того, чтобы забыть тот срам и не делать ничего даже отдалённо подобного -- мне не понадобилось, потому что мне от него страшно и тошно, и вспоминать как раз активно не хочется. Впрочем, тут я в другую сторону шарахнулся, если у меня последовательность выполнения логического условия ИЛИ и операция-запятая вместе предотвращают гонку состояний -- это уже тоже перебор :( Смотрите, критикуйте, спрашивайте, тестируйте, жалуйтесь. Я сделал то, что мне было важно попрактиковать -- а именно многопоточность при сложном сочетании различных факторов взаимодействия. Могу рассказать, почему там-то и там-то так, а не иначе, и как оно ухитряется вроде бы наконец-то работать. Тьфу-тьфу. Надеюсь, для РАРов этим уже можно пользоваться, не рискуя словить факап и нажравшись вместо своих данных какого-то гэ. Потом я расскажу, что мне высказал человек, которому я первому это показал :) Но потом :)