RSS
Главная » 2013 » Июль » 28 » Библиотека ZIP( DotNetZip Library: Ionic.Zip.dll) для Visual Studio 2010 (VB, c# и др.) + нормальное отображения русских символов

   Часто возникает потребность "научить" свою программу работать с архивами. Самым оптимальным, простым и достаточно быстрым способом является подключение сторонней библиотеки.
   Жертвую  долгими вступлениями  и подробными описаниями показываю на примере(для решения будем использовать DotNetZip Library):

1. Качаем по ссылке Ionic.Zip.dll (или с оф. сайта: ссылка в конце урока)

2. Создаем новый проект (имя не важно, язык тоже). Я приведу код на Visual Basic 2010 примеры на других языка можно найти в хелпе (скачать его можно тут)

3. Добавляем ссылку на библиотеку (Проект ->Добавить Ссылку -> выберете вкладку Обзор  и откройте там Ionic.Zip.dll) 

4. Теперь перетащите на форму кнопку и дважды кликните на ней , чтобы создать обработчик.

5. В Обработчике событий кнопки пишем
  
    Упаковать("C:\test_file.doc", "123", "Тестовый ком","C:\test.zip")
    ' Упаковывает файл C:\test_file.doc в архив C:\test.zip пароль на архив 123
    ' чтобы запаковать без пароля пишите
    Упаковать("C:\test_file.doc""""Тестовый ком","C:\test2.zip")

После строчки:
    Public Class Form1

Напишите следующий код:

 Private Sub Упаковать(ByVal файл As String, ByVal пароль As String, ByVal _
                          комментарии As String, ByVal куда_сохранить As String)
        
       Try ' если будут ошибки не вешать прогу
            Using zip As ZipFile = New ZipFile
                ' устанавливаем кодировку для поддержки русских символов
                zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(1251)
                If пароль <> "" Then
                    zip.Password = пароль 'Латиницей!
                End If
                zip.AddFile(файл, "") ' в пустых кавычках директория в архиве
                If комментарии <> "" Then
                    zip.Comment = комментарии
                End If
                zip.Save(куда_сохранить)
            End Using
        Catch er As Exception
            'Если будут ошибки выдаст их в окне
            MessageBox.Show(Convert.ToString(er), "Ошибка!",  _ 
                                      MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

Создайте в ворде документ и сохраните его по указанному пути:

    C:\test_file.doc

Запустите Ваш проект на Visual Basic и нажмите на кнопку. В корне диска С появятся два архива. 

Для того, чтобы передать на упаковку несколько файлов, можно пользоваться массивом:

     Dim файлы() As String
     файлы(1)="c:\file1.old"
     файлы(2)="c:\file\text.txt"
     файлы(3)="d:\no_name.exe"

А в процедуре упаковки создать цикл For и заменить тип переменной на Array

На упаковку можно отправлять и папки:
    Упаковать("C:\""aBraCADabra""Пакуем диск С","D:\disc_C.zip")

Если вам что-то непонятно - юзайте хелп!

Возможные ошибки:

1. Моя косорукось (писал код без редактора, по памяти). Если найдете ошипки - пишите в комментах ;)
2. Если у Вас Windows 7 и выше, то Вашу программу следует запускать от имени админа в противном случае система не разрешит программе создавать файлы на диске С. Можно вместо диска С указать другой путь, например рабочий стол.


Категория: Статьи | Просмотров: 370 | Добавил: MERC | Рейтинг: 4.5/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Активность

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Опросы

В каком формате Вы предпочитаете читать электронные книги?
Всего ответов: 23

temp_block

карданный вал решение задач по теоретической механике ремонт станков и оборудования . служба доставки екатеринбург