• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Class nén và giải nén file bằng VB.net

Bộ sưu tập các thư viện hỗ trợ sẳn cho Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Nội qui chuyên mục
1. Gửi bài viết tại đây, Tester sẽ chuyển vào trong nếu bài viết đạt yêu cầu.
2. Gửi bài theo mẫu qui định: viewtopic.php?f=2&t=5
[ten][/ten]
[loai][/loai]
[ngonngu][/ngonngu]
[tacgia][/tacgia]
[chucnang][/chucnang]
[end][/end]
Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Class nén và giải nén file bằng VB.net

Gửi bàigửi bởi bangnhatquang68 » T.Năm 01/12/2011 12:06 pm

Tên: [.NET] Class nén và giải nén file bằng VB.net
Loại: Class
Ngôn ngữ lập trình: VB.NET
Tác giả: Băng Nhât Quang
Chức năng: Hỗ trợ nén và giải nén file
Mô tả:: Hỗ trợ từ .NET 2008 trở đi
Nguồn: Đi chôm một nơi một ít về gom lại thôi! Không phải chính hãng đâu :D
  1. Imports System.IO
  2. Imports System.IO.Compression
  3.  
  4. Public Class _ClsGZip
  5.     Public Function CompressFile(ByRef _file As String, ByRef _folderSave As String) As String
  6.         ' Kiểm tra file đem nén
  7.         If IO.File.Exists(_file) = False Then
  8.             Return "File này không có"
  9.             Exit Function
  10.         Else
  11.             'Kiểm tra folder  save
  12.             If IO.Directory.Exists(_folderSave) = False Then
  13.                 Return "Folder này làm gì có"
  14.                 Exit Function
  15.             End If
  16.         End If
  17.  
  18.         Try
  19.             'Lấy tên file
  20.             Dim name As String = Path.GetFileName(_file)
  21.             'Chuyển file thành mảng byte()
  22.             Dim source() As Byte = System.IO.File.ReadAllBytes(_file)
  23.             'Nén mảng byte()
  24.             Dim compressed() As Byte = ConvertToByteArray(source)
  25.             'Sau khi đã nén file thì bây giờ write nó lại thôi
  26.             System.IO.File.WriteAllBytes(_folderSave & "\" & name & ".zip", compressed)
  27.             Return "Nén thành công!"
  28.         Catch ex As Exception
  29.             Return "Nén bị lỗi: " & ex.ToString()
  30.         End Try
  31.     End Function
  32.     Public Function DecompressFile(ByRef _FileNen As String, ByRef _FilegiaiNen As String) As Boolean
  33.         Try
  34.             Dim _MemoryStream As New MemoryStream(File.ReadAllBytes(_FileNen))
  35.             ' giải nén Gzip
  36.             Dim _GZipStream As New GZipStream(_MemoryStream, CompressionMode.Decompress)
  37.             Dim _temp(3) As Byte
  38.             'Đọc từ stream
  39.             _MemoryStream.Position = _MemoryStream.Length - 5
  40.             _MemoryStream.Read(_temp, 0, 4)
  41.             ' Tính kích của mảng byte giải nén
  42.             Dim _size As Integer = BitConverter.ToInt32(_temp, 0)
  43.             'Vị trí bắt đầu của Stream
  44.             _MemoryStream.Position = 0
  45.             Dim _ByteGNen(_size - 1) As Byte
  46.             'Đoc byte đã giải nén vào mảng byte
  47.             _GZipStream.Read(_ByteGNen, 0, _size)
  48.             'Giải phóng bộ nhớ
  49.             _GZipStream.Dispose()
  50.             _MemoryStream.Dispose()
  51.             'Viết lại file gốc
  52.             File.WriteAllBytes(_FilegiaiNen, _ByteGNen)
  53.             Return True
  54.         Catch ex As Exception
  55.             MessageBox.Show(ex.ToString())
  56.             Return False
  57.         End Try
  58.     End Function
  59.     Public Function ConvertToByteArray(ByVal _source() As Byte) As Byte()
  60.         'Tạo một  MemoryStream mới
  61.         Dim _MemoryStream As New MemoryStream()
  62.         'Khởi tạo  GZipStream, nén  : Cái này là của Gzip: nén thế nào thì tui chịu
  63.         Dim _GZipStream As New GZipStream(_MemoryStream, CompressionMode.Compress, True)
  64.         'Viết mảng byte() sau khi nén vào biến source
  65.         _GZipStream.Write(_source, 0, _source.Length)
  66.         'Xóa sạch
  67.         _GZipStream.Dispose()
  68.         _MemoryStream.Position = 0
  69.         Dim _temp(_MemoryStream.Length) As Byte
  70.         _MemoryStream.Read(_temp, 0, _temp.Length)
  71.         _MemoryStream.Dispose()
  72.         Return _temp
  73.     End Function
  74.  
  75. End Class
  76.  


Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

Hình đại diện của người dùng
nhatlinh0207
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 380
Ngày tham gia: T.Tư 15/08/2012 7:54 pm
Has thanked: 54 time
Been thanked: 45 time

Re: Class nén và giải nén file bằng VB.net

Gửi bàigửi bởi nhatlinh0207 » T.Tư 26/09/2012 11:52 am

bác hướng dẫn cách dùng được không? em gà mờ bác ah

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 37 time
Liên hệ:

Re: Class nén và giải nén file bằng VB.net

Gửi bàigửi bởi bangnhatquang68 » T.Tư 26/09/2012 4:57 pm

:D tạo một class trong project của bạn. rồi copy tất cả và paste vào.
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/


Quay về “[.NET] Module, Class, UserControl, DLL”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách