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

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

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

Author24 — интернет-сервис помощи студентам
Вобщем заработало вот так:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2013, 11:34
Ответы с готовыми решениями:

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

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

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

Программно распаковать архив
Подскажите как программно распаковать архив rar в скрытом режиме и с заменой файлов(если такие...

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

У меня такая мысль еще есть - вводить пароль в всплывающее окно, но делать это программно!
Как то какжется тоже это маловероятно по причине что я незнаю как из Form1 к тому окошку обратится...
Окошко выкидывает сам компонент ZipForge и мы незнаем имени окна и имени полей ввода в нем...
0
04.02.2013, 22:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2013, 22:00
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru