Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
#1

Как получить список файлов в архиве и извлечь только нужные - Программирование Android

03.02.2014, 01:54. Просмотров 993. Ответов 5
Метки нет (Все метки)

Подскажите плиз, как получить список файлов в архиве и извлеч только нужные мне файлы в папку. Перебрал кучу примеров из инета для работы с архивами и только ошибки. Последний тестовый пример
Кликните здесь для просмотра всего текста
Java
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public void unzipping () {
        try
        {
           /*
                * To Open a zip file, use
                *
                * ZipFile(String fileName)
                * constructor of the ZipFile class.
                *
                * This constructor throws IOException for any I/O error.
                */
            File file = new File (getFilesDir() +"/jtv.zip");
            Log.i(TAG,"Control Point n1");
            ZipInputStream zipinputstream = null;
 
            ZipEntry zipentry;
 
            zipinputstream = new ZipInputStream(new FileInputStream(file));
 
 
 
            zipentry = zipinputstream.getNextEntry();
 
           
           Log.i(TAG,"Control Point n2");
           
           /*
            * To get list of entries in the zip file, use
            *
            * Enumeration entries()
            * method of ZipFile class.
            */
           
            //Enumeration e = zipFile.entries();
           
            Log.i(TAG,"Listing zip file contents");
            while(zipentry != null)
            {
                String entryName = zipentry.getName();
                Log.i(TAG,"List - "+ entryName);
                zipentry = zipinputstream.getNextEntry();
            }
           
        }
        catch(IOException ioe)
        {
            Log.i(TAG,"Error opening zip file" + ioe);
        }
 
}
}


В результате в списке имею один файл из 816 (причем не самый первый )
Архив это список каналов jtv.zip
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 01:54     Как получить список файлов в архиве и извлечь только нужные
Посмотрите здесь:

Получить список файлов с HTTP-сервера - Программирование Android
Интересует получение списка файлов без вспомогательных серверных скриптов php и пр. Я подозреваю, что скорее всего это невозможно из...

Получить список файлов сервера указав путь - Программирование Android
Есть сервер на java рабочий. Принимает запросы от клиента и выводит список txt файлов прописанного в путе диска, затем по введенному...

Не удается получить список файлов на хостинге ftp - Программирование Android
Взгляните на код, пожалуйста: FTPClient ftc = new FTPClient(); try { ...

Как загрузить на Ftp сервер список файлов? - Программирование Android
Этот код перестает работать после передачи первого файла. Помогите разобраться в чем дело. @Override protected Void...

Как получить список сообщений вконтакте? - Программирование Android
как получить список личных сообщений вконтакте ??

Как получить из списка адресов только город? - Программирование Android
Здравствуйте! Есть код, который выдает список адресов. Например, ул. Бульвар Гагарина, 6 Пермь Пермский край Россия А как...

Поиск файла на внешних устройствах или как получить список всех смонтированных носителей - Программирование Android
В общем есть задача найти файл test.txt в директории testdir на любом устройстве SD карта или USB устройство. На разных Android...

Список файлов - Программирование Android
Например на SD-карте в папке Folder (Sdcard/folder) лежит несколько xml файлов. Как сделать чтоб при нажатии на кнопку, создался...

Список файлов в корневой директории - Программирование Android
Пустой список /storage/sdcard0 File root; File curFolder; ... root = new...

Как извлечь данные из андроид-приложения (wifi analyzer)? - Программирование Android
Здравствуйте я должен измерят уровень сигнала из разных точках доступа wifi и в разных местах и использовать результаты измерения в...

Как извлечь записи из базы данных Oracle в android - Программирование Android
Сделал логирование, регистрацию, добавление в базу. Осталось только извлекать с сервера на клиент информацию, как это осуществить? Имею...

Получить полный список контактов - Программирование Android
Привет форумчане, Кто-нибудь может подсказать, как получить все контакты из адресной книги? Цель приложения, синхронизировать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
03.02.2014, 10:43     Как получить список файлов в архиве и извлечь только нужные #2
Теперь наверное я бы немного грамотнее придумал, но я делал так:
Java
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    public static boolean decompressFromZip(String Dir, String ZipFile_ShortName, ArrayList<String> extractFiles) {
 
        final int BUFFER = 512;
        final int TOOBIG = 0x6400000; // max size of unzipped data, 100MB
        final int TOOMANY = 1024; // max number of files
 
        final String ZipFile_LongName = Dir + "/" + ZipFile_ShortName;
 
        if (getFile(Dir, ZipFile_ShortName) == null)
            return false;
 
        try {
            FileInputStream fis = new FileInputStream(ZipFile_LongName);
            ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
            ZipEntry entry;
            int entries = 0;
            int total = 0;
            try {
                while ((entry = zis.getNextEntry()) != null) {
 
                    if (extractFiles != null && !extractFiles.contains(entry.getName())) {
                        continue;
                    }
 
                    int count;
                    byte data[] = new byte[BUFFER];
 
                    String name = Utils.validateFilename(entry.getName(), ".");
                    FileOutputStream fos = new FileOutputStream(Dir + "/" + name);
 
                    BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
                    while (total <= TOOBIG && (count = zis.read(data, 0, BUFFER)) != -1) {
                        dest.write(data, 0, count);
                        total += count;
                    }
                    dest.flush();
                    dest.close();
                    zis.closeEntry();
                    entries++;
                    if (entries > TOOMANY) {
                        throw new IllegalStateException("Too many files to unzip.");
                    }
                    if (total > TOOBIG) {
                        throw new IllegalStateException("File being unzipped is too big.");
                    }
                }
            } finally {
                zis.close();
            }
 
        } catch (Exception e) {
        }
 
        return true;
    }
Параметры:
1 - путь к архиву без имени файла
2 - имя файла архива
3 - список файлов для распаковки

getFile() - пользовательская ф-я проверки существования файла
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
07.02.2014, 14:40  [ТС]     Как получить список файлов в архиве и извлечь только нужные #3
Все равно ничего не получается. Вылетает Bad byte at 0 и все тут.

Архив на винде WinRar`ом открывается без проблемм. Что может быть не так ?
Вложения
Тип файла: zip jtv.zip (1.12 Мб, 2 просмотров)
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
07.02.2014, 16:23  [ТС]     Как получить список файлов в архиве и извлечь только нужные #4
Так... на другом архиве работает. Где-то вычитал, что java.util.zip не переваривает кирилицу. Так ли это?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
07.02.2014, 21:02     Как получить список файлов в архиве и извлечь только нужные #5
Цитата Сообщение от ящюр Посмотреть сообщение
Так... на другом архиве работает. Где-то вычитал, что java.util.zip не переваривает кирилицу. Так ли это?
Я это тоже читал, но не проверял.
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
11.02.2014, 11:39  [ТС]     Как получить список файлов в архиве и извлечь только нужные #6
Нет дела не в именах файлов. Имена я поменял, но результат тотже.
Вот почему я и нелюблю особо андроид. В который раз убеждаюсь, что многие вещи работают через большое Ж. Ссори за оффтоп.
Yandex
Объявления
11.02.2014, 11:39     Как получить список файлов в архиве и извлечь только нужные
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru