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

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

17.03.2023, 16:16. Показов 4490. Ответов 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
18349 / 14275 / 5370
Регистрация: 17.03.2014
Сообщений: 28,958
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru