Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ZIP - архивирование Добавлено: 20.11.06 23:44  

Автор вопроса:  Arseny | ICQ: 298826769 
Перебробовал кучу контролов и классов, но не нашел ничего, что поддерживало бы русскую кодировку имен файлов: при (раз)архивации имя файла корежится.
Ежели кто-нибудь подскажет контролчик, буду благодарен несусветно. :)

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #1
Добавлено: 21.11.06 09:36
Sharpziplib.dll

Ответить

Номер ответа: 2
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #2 Добавлено: 21.11.06 13:02
Мне под VB6 треба...

Ответить

Номер ответа: 3
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #3
Добавлено: 21.11.06 21:37
она под vb6 тож идёт

Ответить

Номер ответа: 4
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #4 Добавлено: 21.11.06 23:24
А че-то по поиску примеры только под NET
Она не из FrameWork'а?

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 22.11.06 17:06
Sharpziplib.dll

Не писал я такого... posts++ :)

Ответить

Номер ответа: 6
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #6
Добавлено: 23.11.06 19:47
кароче сам разбирайся тока это под NET

 Imports System.IO
    Imports System.IO.Compression
    Public Class ZipUtil
    Public Sub CompressFile(ByVal sourceFile As String, ByVal destinationFile As String)
    ' make sure the source file is there
    If File.Exists(sourceFile) = False Then
    Throw New FileNotFoundException
    End If
    ' Create the streams and byte arrays needed
    Dim buffer As Byte() = Nothing
    Dim sourceStream As FileStream = Nothing
    Dim destinationStream As FileStream = Nothing
    Dim compressedStream As GZipStream = Nothing
    Try
    ' Read the bytes from the source file into a byte array
    sourceStream = New FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read)
    ' Read the source stream values into the buffer
    buffer = New Byte(CInt(sourceStream.Length)) {}
    Dim checkCounter As Integer = sourceStream.Read(buffer, 0, buffer.Length)
    ' Open the FileStream to write to
    destinationStream = New FileStream(destinationFile, FileMode.OpenOrCreate, FileAccess.Write)
    ' Create a compression stream pointing to the destiantion stream
    compressedStream = New GZipStream(destinationStream, CompressionMode.Compress, True)
    'Now write the compressed data to the destination file
    compressedStream.Write(buffer, 0, buffer.Length)
    Catch ex As ApplicationException
    MessageBox.Show(ex.Message, "An Error occured during compression", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
    ' Make sure we allways close all streams
    If Not (sourceStream Is Nothing) Then
    sourceStream.Close()
    End If
    If Not (compressedStream Is Nothing) Then
    compressedStream.Close()
    End If
    If Not (destinationStream Is Nothing) Then
    destinationStream.Close()
    End If
    End Try
    End Sub
    Public Sub DecompressFile(ByVal sourceFile As String, ByVal destinationFile As String)
    ' make sure the source file is there
    If File.Exists(sourceFile) = False Then
    Throw New FileNotFoundException
    End If
    ' Create the streams and byte arrays needed
    Dim sourceStream As FileStream = Nothing
    Dim destinationStream As FileStream = Nothing
    Dim decompressedStream As GZipStream = Nothing
    Dim quartetBuffer As Byte() = Nothing
    Try
    ' Read in the compressed source stream
    sourceStream = New FileStream(sourceFile, FileMode.Open)
    ' Create a compression stream pointing to the destiantion stream
    decompressedStream = New GZipStream(sourceStream, CompressionMode.Decompress, True)
    ' Read the footer to determine the length of the destiantion file
    quartetBuffer = New Byte(4) {}
    Dim position As Integer = CType(sourceStream.Length, Integer) - 4
    sourceStream.Position = position
    sourceStream.Read(quartetBuffer, 0, 4)
    sourceStream.Position = 0
    Dim checkLength As Integer = BitConverter.ToInt32(quartetBuffer, 0)
    Dim buffer(checkLength + 100) As Byte
    Dim offset As Integer = 0
    Dim total As Integer = 0
    ' Read the compressed data into the buffer
    While True
    Dim bytesRead As Integer = decompressedStream.Read(buffer, offset, 100)
    If bytesRead = 0 Then
    Exit While
    End If
    offset += bytesRead
    total += bytesRead
    End While
    ' Now write everything to the destination file
    destinationStream = New FileStream(destinationFile, FileMode.Create)
    destinationStream.Write(buffer, 0, total)
    ' and flush everyhting to clean out the buffer
    destinationStream.Flush()
    Catch ex As ApplicationException
    MessageBox.Show(ex.Message, "An Error occured during compression", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
    ' Make sure we allways close all streams
    If Not (sourceStream Is Nothing) Then
    sourceStream.Close()
    End If
    If Not (decompressedStream Is Nothing) Then
    decompressedStream.Close()
    End If
    If Not (destinationStream Is Nothing) Then
    destinationStream.Close()
    End If
    End Try
    End Sub
    End Class

Ответить

Номер ответа: 7
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #7 Добавлено: 23.11.06 22:40
От и я говорю, что усе под нет... :(
под выбы шесть надо!

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 26.11.06 20:22
VFunzip.ocx пробовал ?

Ответить

Номер ответа: 9
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #9 Добавлено: 26.11.06 20:30
Найн! :) Он не требует всякой лицензионной дряни?
Если нет, ща поищу. :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам