Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034

Распаковать архив программно

03.02.2013, 11:34. Показов 2327. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вобщем заработало вот так:
C++
1
2
3
4
5
6
ZipForge1->FileName ="c:\\test.rar";
ZipForge1->OpenArchive();
//ZipForge1->Password = "1";
ZipForge1->ExtractFiles("*.*");
ZipForge1->BaseDir = "c:\\";
ZipForge1->CloseArchive();
Тока непойму как на диск С сохранить а не в папке с приложением.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2013, 11:34
Ответы с готовыми решениями:

Как программно распаковать архив ZIP
Приветствую всех. :) Возникла необходимость программной распаковки архива zip. Подскажите в каком направлении рыть? Есть такая...

Распаковать cab архив?
Как можно распаковать cab архив программно в С++?

Запаковка папки в архив программно
Можно ли как-либо папку находящююся на диске С запаковать в архив рар или зип, вместе со всеми файлами?

5
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
03.02.2013, 13:35
BaseDir нужно указывать перед ExtractFiles
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
03.02.2013, 15:08  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
BaseDir нужно указывать перед ExtractFiles
Верно. А еще не подскажеш программа в моем случае дожна брать пароль из эдит- поля
C++
1
ZipForge1->Password = Edit1->Text;
и если там пароль неверный стоял то программа уже выкидывает свое окошко для ввода пароля. Так вот я бы нехотел чтоб она свое окошко выкидывала а вводить пароль снова в эдит поле. Может че как- то в этом направлении работать и исключение ловить на всплывание этого окна?
C++
1
2
3
4
5
6
7
8
try
{
ZipForge1->Password...
}
catch (...)
{ 
ShowMessage("Работаем дальше по своему алгоритму!");
}
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
03.02.2013, 16:00
Ну , в этом направлении... - если на событие ZipForge1Password(..) поставить SkipFile = true;, то сообщение не выводится (ничего не происходит, файлы не распаковываются). Но мои другие манипуляции в этом обработчике приводят к зависанию. Попробуйте вы, - что-нибудь должно получиться.
0
Марсианин)))
713 / 46 / 15
Регистрация: 18.07.2010
Сообщений: 637
03.02.2013, 20:05
Примерно так. Только пароли берутся из списка "Paroll".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void __fastcall TForm1::ExtZip(AnsiString Patch)
{
   TZFArchiveItem Archiveitem;
   Zip->FileName = Patch;
   Zip->BaseDir = SavePut;
 
   TInternalSearchRec asd;
   try
   {
 
      Zip->OpenArchive(fmOpenRead);
      Zip->FindFirst("*.*" , Archiveitem, faAnyFile|faDirectory);
 
      for(int i =0; i < Paroll->Count; i++){
         Zip->Password =Paroll->Strings[i];
         do
         {
            if(Zip->IsFilePasswordValid(Archiveitem.FileName,Zip->Password) == true){
               RichEdit1->Lines->Add(Zip->BaseDir + Archiveitem.StoredPath + Archiveitem.FileName);
         // Если не нужно разархивировать то следующую инструкцию закоментируй
               Zip->ExtractFiles(Archiveitem.FileName);
            }
            else
            {
               break;
            }
         }
         while( Zip->FindNext(Archiveitem));
      }
   }
   catch(...){
      Zip->CloseArchive();
     }
   Zip->CloseArchive();
}
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.02.2013, 22:00  [ТС]
Xank Че то у меня неполучается как у тебя...

У меня такая мысль еще есть - вводить пароль в всплывающее окно, но делать это программно!
Как то какжется тоже это маловероятно по причине что я незнаю как из Form1 к тому окошку обратится...
Окошко выкидывает сам компонент ZipForge и мы незнаем имени окна и имени полей ввода в нем...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2013, 22:00
Помогаю со студенческими работами здесь

Программно распаковать архив
Подскажите как программно распаковать архив rar в скрытом режиме и с заменой файлов(если такие существуют) Делаю так: var...

Как программно распаковать архив?
Как без использования программ типа WinRAR и т.д. распаковать архив? Без разницы рар или зип. В инете много информации об этом, но там...

Распаковать программно архив rar
Уважаемые ГУРУ помогите пожалуйста с решением проблемы. Пишу приложение которое обрабатывает входящюю почту из outlook туда приходят...

Как распаковать архив
Есть .rar с eclips'ом но во время распаковки ошибка - превышение длины имени файла или что-то пипа того.Мне препод говорил что нужно...

Распаковать архив на странице
ASP NET MVC распаковать архив using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru