Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
.NET 4.x

Не работает сжатие/разархивирование архивов 7z

24.02.2016, 22:12. Показов 1405. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть процедуры упаковки и разархивирование архивов 7z.
VB.NET
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
Sub _ImportFrom7z(fileName As String)
        'Распаковка
        Dim myProcess As Process = Process.Start(Application.StartupPath + "\7za.exe", "x -p12345nui " + fileName + """ """ + " -o" + Application.CommonAppDataPath + "1.2.0.0" + """")
 
        Do While Not myProcess.HasExited
            Application.DoEvents() 'Нужно что бы программа не зависла и откликалась на действия вовремя ожидания 
        Loop 
        'Действие по завершению
        MsgBox("Завершено: " & myProcess.ExitTime & "." & System.Environment.NewLine & "Код завершения: " & myProcess.ExitCode) 'Выводим информацию по завершению
        myProcess.WaitForExit() ' Ожидаем закрытия
        myProcess.Close() 'Освобождаем память
    End Sub
    Sub _ExportTo7z(fileName As String)
        Dim myProcess As Process = Process.Start(Application.StartupPath + "\7za.exe", "a -p12345nui -mhe -t7z -ssw -mx7 """ + fileName + """ """ + Application.CommonAppDataPath + "1.2.0.0" + """")
        ' -tzip - формат архива установлен в 7z, без этого ключа 7z по умолчанию
        ' -ssw - принудительная упаковка файлов, которые в данный момент открыты для записи
        ' -mx7 - степень сжатия (где 0 - без сжатия а 7 максимальна степень)
        ' -p12345 - шифрование архива, где 12345 - пароль
        ' -mhe - шифрование имен файлов
        ' Путь и полное имя создаваемого архива
        ' Путь и полное имя папки/файла необходимого архивировать
        Do While Not myProcess.HasExited
            Application.DoEvents() 'Нужно что бы программа не зависла и откликалась на действия вовремя ожидания 
        Loop
        'Действие по завершению
        MsgBox("Завершено: " & myProcess.ExitTime & "." & System.Environment.NewLine & "Код завершения: " & myProcess.ExitCode) 'Выводим информацию по завершению
        myProcess.WaitForExit() ' Ожидаем закрытия
        myProcess.Close() 'Освобождаем память
    End Sub
И есть ихний вызов
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Private Sub ИмпортироватьИнформациюToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ИмпортироватьИнформациюToolStripMenuItem.Click
        If FileDialog1.ShowDialog() = DialogResult.OK Then
            Data._ImportFrom7z(FileDialog1.FileName)
        End If
    End Sub
 
    Private Sub ЕкспортировантьИнформациюToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ЕкспортировантьИнформациюToolStripMenuItem.Click
        If FileDialog2.ShowDialog() = DialogResult.OK Then
            Data._ExportTo7z(FileDialog2.FileName)
        End If
    End Sub
Проблема заключается в том, что архив не распаковывается без ошибки(код ошибки 2).
В чём моя ошибка?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2016, 22:12
Ответы с готовыми решениями:

Архивирование и разархивирование ZIP архивов
Здравствуйте! Долго уже ищу, но не могу найти подходящего. Пробовал zLib - ничего не понял даже по примерам. В LZMA вообще...

Архивирование/разархивирование RAR и ZIP архивов.
Подскажите, как можно из своей програмы на VB архивировать/разархивировать (rar, zip) файлы?

Архивирование/разархивирование RAR и ZIP архивов.
Подскажите, как можно из своей програмы на VB архивировать/разархивировать (rar, zip) файлы?

10
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
24.02.2016, 22:26
Код 2:
Архив поврежден.


Проверьте правильность упаковки (сравните с помощью спец утитлит хэш коды файлов). Вероятно ошибка при упаковке возникает.
0
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
24.02.2016, 22:30
вот
Вложения
Тип файла: zip Md5Checker.zip (132.1 Кб, 14 просмотров)
1
39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
25.02.2016, 20:11  [ТС]
Winney, да возникает ошибка №1
0
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
25.02.2016, 21:06
0 нет ошибок
1 Предупреждение (Non фатальная ошибка (и)). Например, один или более файлы были заблокированы другим приложением, таким образом, они не были сжаты.
2 Фатальная ошибка
7 Командная строка
8 Недостаточно памяти для работы
255 Пользователь остановил процесс
1
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
25.02.2016, 22:05
Вставил в интерпретатор строку с аргументами, вылезло
"x -p12345nui c:\test.zip" " -oC:\ProgramData\WindowsApplication65\Win dowsApplication65\1.0.0.01.2.0.0""
По справке к 7zip думаю следует написать так
"x -p12345nui "c:\test.zip" -o"C:\ProgramData\WindowsApplication65\Wi ndowsApplication65\1.0.0.01.2.0.0""
то есть
"x -p12345nui """ + fileName + """ -o""" + Application.CommonAppDataPath + "1.2.0.0" + """")

И мне кажется с директорией что-то не так
1
39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
26.02.2016, 16:52  [ТС]
Всё равно при разархивировании ошибка 1
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
26.02.2016, 18:21
Может там находит файл под процессом находится, который вы пытаетесь заменить?
0
39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
27.02.2016, 11:22  [ТС]
Sklifosofsky, я не пытаюсь заменить файл род процессом, а всего-лишь сжать в архив без удаления оригинала
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
27.02.2016, 15:37
SergProgrammer, а с директорией? Видели что у меня выпадает. Я думаю это не правильно. Программа будет сжимать несуществующую директорию таким образом. Чтоб вам помогли опишите что, где, куда вы хотите сжимать и разжимать
0
39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
27.02.2016, 20:29  [ТС]
Sklifosofsky, директория которая сжимается существует(при запуске программы директория создается автоматически и добавляются файлы).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2016, 20:29
Помогаю со студенческими работами здесь

Разархивирование файлов по маске из архивов ARJ, RAR, ZIP с удалением из архива
Здравствуйте! Необходимо разархивировать файлы с определенной маской из архива в текущий каталог без создания каталога. Если в этом...

Сжатие и распаковка через 7zip + Криптование и декриптование архивов
Здравствуйте. Помогите с 2мя вещами. 1. Сжатие и распаковка в 7zip не могу найти полноценный урок а лучше вообще пример по работе с...

Gzip сжатие. Не работает
Выручайте! Уж и не знаю что делать. Решил другу помочь, ускорить сайт, вроде всё стандартное, действую по инструкции...

Не работает сжатие рисунков в word2003
Добрый день всем форумчанам! Прошу помощи! Сегодня, без объявления войны ворд 2003 перестал сжимать рисунки в тексте. Выглядит это...

Разархивирование
Здравствуйте. Помогите, плиз. Есть папка D:\RAR. в ней много архивов. Как разархивировать их в папку D:\UNRAR, чтобы на каждый архив...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru