Драсте фсем) Я пишу программу на подобие WinRaR и хотел бы узнать как сделать так, чтобы файлы, которые я сжимаю были в архиве, ну как в WinRaR, в одном фале. Заранее спс.
Ну на асме не знаю как сделать, но я так понимаю, что нужно создать нетипизированный файл и записать все нужные тебе файлы в него. в начале файла создаёшь структуру, в которую записываешь количество файлов,имена файлов, их размер. Потом читая эту инфу просто их вытаскиваешь.
aikidzin а есть какая-нибудь стандартная структура на подобие той, что вы предложили? Или надо писать самому
Например на си Сначала записываешь переменную dwNomberOfFiles. она укажет количество файлов. DWORD dwNomberOfFiles; Затем записываешь t_OneFileInfo необходимое количество раз (dwNomberOfFiles). Размер этой структуры (128+4). так что ты всегда будешь знать с какого места у тебя начинается новая структура. typedef struct { char[128] chName; /* соответственно имя файла с расширением */ DWORD dwSize; /* его размер в байтах */ } t_OneFileInfo;
http://sourceforge.net/project/showfiles.php?group_id=14481 файл 7z449.tar.bz2 - исходники архиватора
Используй Structured Storage - это документированный способ сохранения нескольких файлов в одном. Пакуешь данные и пишешь в разные потоки хранилища. Удачи!