39 / 38 / 6
Регистрация: 17.07.2015
Сообщений: 380
Записей в блоге: 1
1
.NET 4.x

Ошибка создания архива zip

14.02.2016, 19:10. Показов 1432. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть процедура создания(экспорта данных в архив):
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Sub _ExportTo7z(fileName As String)
        Dim myProcess As Process = Process.Start("7za.exe", "a -p12345nui -mhe -t7z -ssw -mx7 " + fileName + " " + Application.CommonAppDataPath + "")
        ' -tzip - формат архива установлен в 7z, без этого ключа 7z по умолчанию
        ' -ssw - принудительная упаковка файлов, которые в данный момент открыты для записи
        ' -mx7 - степень сжатия (где 0 - без сжатия а 7 максимальна степень)
        ' -p12345 - шифрование архива, где 12345 - пароль
        ' -mhe - шифрование имен файлов
        ' Путь и полное имя создаваемого архива
        ' Путь и полное имя папки/файла необходимого архивировать
        Do While Not myProcess.HasExited
            Application.DoEvents() 'Нужно что бы программа не зависла и откликалась на действия вовремя ожидания 
        Loop
        myProcess.WaitForExit() ' Ожидаем закрытия 
        'Действие по завершению
        MsgBox("Завершено: " & myProcess.ExitTime & "." & System.Environment.NewLine & "Код завершения: " & myProcess.ExitCode) 'Выводим информацию по завершению
        myProcess.Close() 'Освобождаем память
    End Sub
И использование:
VB.NET
1
2
3
4
    Private Sub ЕкспортировантьИнформациюToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ЕкспортировантьИнформациюToolStripMenuItem.Click
        FileDialog2.ShowDialog()
        Data._ExportTo7z(FileDialog2.FileName)
    End Sub
И ФайлДиалог2 есть на форме.

Добавлено через 2 часа 22 минуты
Что неужели никому ничего непонятно?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2016, 19:10
Ответы с готовыми решениями:

Распаковка архива (.zip)
Нужно программно распаковать zip архив. Какие библиотеки могут это сделать ? Можно ли распаковать...

Извлечение файлов из архива ZIP
В общем не получается нормально работать с zip файлами. Хотел работать стандартными средствами...

Неверная кодировка при распаковке zip архива
для распаковки решил воспользоваться не стандартной библиотекой, а библиотекой DotNetZip...

Запаковать файл в .zip архивы (Создание пустого файла архива)
Здравствуйте. Нужно архивировать файлы с каталога (запаковать) Как заорхивировать я знаю (в FAQ...

1
Администратор
Эксперт .NET
15590 / 12560 / 4988
Регистрация: 17.03.2014
Сообщений: 25,498
Записей в блоге: 1
14.02.2016, 22:08 2
Лучший ответ Сообщение было отмечено edward_freedom как решение

Решение

SergProgrammer, под "ошибкой создания архива zip" может скрываться что угодно. Если ты хочешь чтобы тебе помогли следует формулировать вопросы более ясно и полно. Например, если возникает ошибка компиляции, то следует привести её текст и указать строку где она возникает. Если во время выполнения программы происходит исключение, то следует привести информацию об этом исключении (тип, текст исключения, трассировку стека). Если нет ни ошибок компиляции, ни ошибок исполнения, то об этом тоже следует ясно написать в виде - программа должна сделать то-то, но вместо этого происходит то-то.

Теперь к сути вопроса. Во-первых, метод _ExportTo7z следует вызывать только если диалог был закрыт по нажатию кнопки ОК.
VB.NET
1
2
3
4
5
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
Во-вторых, проблемы с запуском внешней программы могут быть вызваны следующими причинами
  • Windows не может найти 7za.exe. В коде это решается путем указания полного пути к файлу. Снаружи это решается добавлением каталога с 7za.exe в переменную PATH.
  • Пробелы в пути. Если путь содержит пробелы, то его нужно окружить кавычками. Для простоты следует всегда окружать путь кавычками
    VB.NET
    1
    
    Dim myProcess As Process = Process.Start("7za.exe", "a -p12345nui -mhe -t7z -ssw -mx7 """ + fileName + """ """ + Application.CommonAppDataPath + """")
  • Неправильные аргументы командной строки. Проверяется с помощью запуска приложения из командной строки используя значение которое передается в метод Process.Start
Проверь по очереди эти пункты и всё должно получиться.
4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2016, 22:08
Помогаю со студенческими работами здесь

Программная распаковка архива используя ionic.zip - "невозможно преобразовать ionicZipEntry в systemEventArgs"
Использую библиотеку ionicZip (DotNetZip). Ссылка на примеры:...

Распаковка архива с именем архива по маске
Всем привет! Понимаю, что тема с архивами уже избитая, но все же есть определенная задача. Прошу...

Сравнение времени локального Zip архива с Zip архивом на FTP
Доброго времени суток Нужна помощь!!! Нужно сравнить время локального Zip архива с Zip архивом на...

Как извлечь все папки и файлы zip архива,не считая корневой директории архива и какая кодировка у архиватора winzip?
Всех приветствую. Имеется zip архив. Нужно извлечь все файлы в определённую папку на sd карте,не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru