Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.05.2018, 09:53
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию Распаковать многотомный архив

Здравствуйте. Подключил SevenZip, пишу:
Код:
 with CreateInArchive(CLSID_CFormatZip) do
   begin
   OpenFile(ExtractFilePath(ParamStr(0)) + 'data.zip');
   ExtractTo(ExtractFilePath(ParamStr(0)) + 'data');
   end;

В папке с программой лежат data.zip, data.z01, data.z02

Выдаёт "Не верная функция". Но если взять цельный архив "data.zip" то всё распаковывает.

пробовал кидать разные версии 7z.dll, не помогло. Помогите пожалуйста, как многотомные распаковывать?
Ответить с цитированием
  #2  
Старый 29.05.2018, 20:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вот такой код на stackoverflow.com говорят работает:
Код:
using sevenzip;

procedure Unzip7zFile (zipFullFname:string);
  var
    outDir:string;
  begin
    with CreateInArchive(CLSID_CFormat7z) do
    begin  
      OpenFile(zipFullFname);
      outDir := ChangeFileExt(zipFullFname, '');
      ForceDirectories (outDir);
      ExtractTo(outDir);
    end;
  end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Stanei (30.05.2018)
  #3  
Старый 30.05.2018, 04:05
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Вот такой код на stackoverflow.com говорят работает:

тоже самое выдаёт "Не верная функция"
Ответить с цитированием
  #4  
Старый 30.05.2018, 09:55
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

покопавшись, нашёл компонент "ZipForge"

кидаю на форму компонент, пишу
Код:
ZipForge1.FileName := ''; // Путь к zip архиву
ZipForge1.OpenArchive; // Чтение содержимого архива
ZipForge1.BaseDir := ''; // Путь распаковки
ZipForge1.ExtractFiles('*.*'); // Распаковка

Разархивирует и цельные архивы, и многотомные.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025