Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146

Как получить список файлов в ZIP или в RAR?

17.03.2023, 16:16. Показов 4696. Ответов 35

Студворк — интернет-сервис помощи студентам
Вынесено из темы Автоматическая распаковка архивов в указанную директорию


Здравствуйте.
А как-бы получить список файлов в зипе или в раре? Искал в интернете, но ничего внятного не не нашёл. Я, конечно, могу архив разрарить (или разиповать) в какую-то директорию и потом загнать полученный список в listbox, но как мне кажется, это не правильно.

Ещё вопрос. Файлы, начинающая с тире (например "-файл1") при удалении не работают, пишет "не известный ключ (или команда)",при копировании файла вообще ничего не происходит. & """ """ & ничего не даёт. Как-бы удалять или копировать подобные файлы? .
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2023, 16:16
Ответы с готовыми решениями:

Как архивировать файлы в Zip или Rar
Нужна помощь) На диске С:\ есть папка и в ней еще папки, как саму папку Архивировать в Zip или Rar формат ?

Как програмно упаковать файл .xls в .rar или .zip?
Как програмно упаковать файл .xls в .rar или .zip?

Как открыть архив Rar или Zip и работать с файлами архива.
Как открыть архив Rar или Zip и работать с файлами архива. Тоесть не распоковывая её, а сразу в Perle и работать с архивов как с...

35
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 16:47  [ТС]
Студворк — интернет-сервис помощи студентам
пишет, что:
Кликните здесь для просмотра всего текста
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
18.03.2023, 16:58
istomin_an62, конкретно для этих примеров работает вариант с указанием кодировки. Замените эту строку
VB.NET
41
            Using zipArc As New ZipArchive(stream, ZipArchiveMode.Read)
на
VB.NET
41
            Using zipArc As New ZipArchive(stream, ZipArchiveMode.Read, False, Encoding.GetEncoding(866))
И, конечно, сделайте вывод в ListBox вместо вывода в консоль.

Данный код правильно работает с названиями на английском и русском. Если других языков не будет, то значит всё в порядке.

Добавлено через 1 минуту
Цитата Сообщение от istomin_an62 Посмотреть сообщение
пишет, что:
Для таких вещей есть специальная тема - https://www.cyberforum.ru/abou... 06915.html
1
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 17:22  [ТС]
Большое спасибо. Теперь всё работает. А, для справки, в первом случае не подскажете строчку для смены кодировки?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
18.03.2023, 17:25
Цитата Сообщение от istomin_an62 Посмотреть сообщение
А, для справки, в первом случае не подскажете строчку для смены кодировки?
Первый случай не поддерживает указание кодировки, но это не важно т.к. классы все равно одни и те же. И вообще можно скрыть эти две строки за методом чтобы упростить код
VB.NET
1
2
        Using stream As FileStream = File.OpenRead(путь1 + имя1)
            Using zipArc As New ZipArchive(stream, ZipArchiveMode.Read, False, Encoding.GetEncoding(866))
1
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 17:39  [ТС]
Что-то не понял. А, впрочем, это неважно, и так всё прекрасно работает, благодаря вашему коду. В первом случае буду разбираться.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
18.03.2023, 17:53
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Что-то не понял.
Я имел в виду что можно написать метод принимающий путь к архиву и возвращающий ZipArchive с нужной кодировкой. Чтобы писать только одну строку вместо двух.

Добавлено через 22 секунды
Цитата Сообщение от istomin_an62 Посмотреть сообщение
В первом случае буду разбираться.
С чем именно?
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 18:35  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
С чем именно?
С кодировкой
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
18.03.2023, 18:41
Цитата Сообщение от istomin_an62 Посмотреть сообщение
С кодировкой
Я же сказал что ZipFile.OpenRead не поддерживает указание кодировки или вы что-то другое имеете в виду?
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 18:51  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Я же сказал что ZipFile.OpenRead не поддерживает указание кодировки
Ясно. Ну, тады, ладно.

Добавлено через 4 минуты
OwenGlendower, Хотя, в первом случае русский алфавит так и будет показываться кракозябрами? Странно это...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
18.03.2023, 18:55
Цитата Сообщение от istomin_an62 Посмотреть сообщение
Странно это...
Ничего странного. Первый метод ведет себя точно так же как второй когда мы не указывали кодировку.
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
18.03.2023, 18:58  [ТС]
OwenGlendower, Понятно.
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
22.03.2023, 11:15  [ТС]
На второй вопрос я сам себе ответил:
"Ключ -- — прервать дальнейший поиск ключей в командной строке"
Т.е., при удалении файла, начинающееся "-", например "-файл1", надо добавлять в конце ключ "--":
VB.NET
1
Dim Rar As String = "c:\Program Files\WinRAR\WinRAR.exe" & " D  -dr -- "
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
22.03.2023, 12:06
istomin_an62, к вашему сведению удалить файл из архива можно кодом. Внешний архиватор использовать необязательно.
VB.NET
1
2
3
4
5
6
7
8
Using stream As FileStream = New FileStream("file.zip", FileMode.Open, FileAccess.ReadWrite)
    Using zipArc As New ZipArchive(stream, ZipArchiveMode.Update)
        Dim zipEntryToDelete As ZipArchiveEntry = zipArc.GetEntry("-файл1")
        If zipEntryToDelete IsNot Nothing Then
            zipEntryToDelete.Delete()
        End If
    End Using
End Using
2
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
22.03.2023, 13:55  [ТС]
OwenGlendower, Речь идет не только об удалении файла, но об его копировании и переносе. В моём случае проще, правда обязательно установить rar и его подкорректировать, но, опять-же, в моём случае, rar всегда установлен.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18407 / 14338 / 5370
Регистрация: 17.03.2014
Сообщений: 29,027
Записей в блоге: 1
22.03.2023, 16:18
Цитата Сообщение от istomin_an62 Посмотреть сообщение
в моём случае, rar всегда установлен.
Окей. Будем считать тогда что пример приведен для расширения кругозора
0
5 / 5 / 0
Регистрация: 20.07.2020
Сообщений: 146
23.03.2023, 01:38  [ТС]
OwenGlendower, Во всяком случае, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2023, 01:38

Как с помощью VB заархивировать файлы в архивы типа rar или zip?
Как с помощью VB заархивировать фалы в архивы типа rar или zip??? Кто знает пришлити пожалуйста код на мыло.

Как на С# в КПК разархивировать архив RAR или ZIP из командной строки ?
Подскажите пожалуйста, как на С# в КПК разархивировать архив RAR или ZIP из командной строки ?

Получить список файлов в Zip
На входе есть архив, мне нужно получить список файлов из него, как можно реализовать это?

Получить список имен файлов из zip архива
Здравствуйте, Хотелось бы найти быстрый способ, желательно без распаковки архива, получить список имен файлов из zip архива (на...

Извлечение файлов из архивов Rar, Zip, Arj
Всем привет! Вот столкнулся с задачей... нужно извлекать файлы из архивов. Все усложняется тем что архиваторы могут быть разные. Есть...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru