Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скачать файл из архива. Скачать по интернету файл из архива: zip 
:(
    Опции темы
MuForum
Дата 18.4.2011, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: 1
Всего: 4



Доброе время суток.
На хостинге лежит архив (.zip, .rar, .7z), необходимо с удалённо компьютера скачать определённый файл из этого архива и разархивировать на локальном компьютере.

То есть, на хостинге есть Update.zip/rar/7z, в котором содержиться 8 файлов. (1, 2, 3, 4, 5, 6, 7, 8 .txt)
- Мне необходимо скачать из архива только файл 2.txt и на локальном компьютере его разархивировать. 


P.S. -> Каким образом данную задачу можно реализовать? Через какие команды, компоненты?

Это сообщение отредактировал(а) MuForum - 18.4.2011, 13:51


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
ZVano
Дата 18.4.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Сам никогда этим не занимался, могу лиш помочь косвенной информацией (если не подходит, просто считай что этого сообщения нет smile ).

Инструмент для распаковки - библиотека 7-zip 
Сайт: http://7-zip.org.ua/ru/7z.html
http://ru.wikipedia.org/wiki/7-Zip
Поддерживаемые форматы: 
упаковка и распаковка: 7z, BZIP2 (BZ2, TB2, TBZ, TBZ2), GZIP (GZ, TGZ), TAR, ZIP, XZ;
только распаковка: 001, ACE, ARJ, CAB, CHM, CPIO, DEB, DMG, FLV, ISO, JAR, LHA, LZH, LZMA, MSI, NSIS, PE, RAR, RPM, SWF, SWM, VHD, WIM, XAR, Z (TAZ); FAT, HFS, MBR, NTFS, UDF, SquashFS, CramFS

SDK: http://sourceforge.net/projects/sevenzip/f...ar.bz2/download
lzma920\7zFormat.txt - описывает формат архива 7-ZIP
Где взять формат архивов других типов я не знаю.


Голая теория:
Каждый тип архивов имеет свой заголовок.
1. Нужно определить какой тип архива перед тобой.
2. Скачать байты заголовка. Разобрать их в соответствии со структурой заголовка конкретного типа архивов.
3. Определиться что за подтип архива перед тобой. 
Можно ли вообще распаковать один файл, или архив непрерывный.
Заархивирован заголовок или нет. Запаролен архив или нет.
И т.п.
4. Получить список файлов архива.

Для 7zip
7z920\CPP\Common\ListFileUtils.h
bool ReadNamesFromListFile(LPCWSTR fileName, UStringVector &strings, UINT codePage = CP_OEMCP);
кусок для примера из 7z920\CPP\7zip\UI\Common\ArchiveCommandLine.cpp 
Код

static void AddToCensorFromListFile(NWildcard::CCensor &wildcardCensor, LPCWSTR fileName, bool include, NRecursedType::EEnum type, UINT codePage)
{
  UStringVector names;
  if (!NFind::DoesFileExist(fileName))
    throw kCannotFindListFile;
  if (!ReadNamesFromListFile(fileName, names, codePage))
    throw kIncorrectListFile;
  for (int i = 0; i < names.Size(); i++)
    AddNameToCensor(wildcardCensor, names[i], include, type);
}


5. Определить где находятся данные для нужного файла.
Как, я ХЗ. Нужно рыть SDK.
6. Скачать кусок файла.
Сформировать из заголовка и куска один файл, где недостающие данные будут забиты нулями.
7. Выполнить распаковку указаного файла. Средствами библиотеки (читай SDK, изучай пример 7z920\CPP\7zip\UI\Common\ArchiveCommandLine.cpp )


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.