منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ضغط - فك الضغط باستخدام الفئة gzip - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117)
+---- الموضوع : ضغط - فك الضغط باستخدام الفئة gzip (/showthread.php?tid=6235)



ضغط - فك الضغط باستخدام الفئة gzip - RaggiTech - 17-10-12

كاتب الموضوع : Boutemine Oualid

السلام عليكم و رحمة الله وبركاته

سي شارب

كود :
using System.IO;
using System.IO.Compression;
public static void CompressFile(string inputFileName, string outputFileName)
{
byte[] buffer = new byte[4096];
if (File.Exists(inputFileName))
{
using (FileStream inputFile = File.Open(inputFileName, FileMode.Open), outputFile = File.Create(outputFileName))
{
using (GZipStream gzip = new GZipStream(outputFile, CompressionMode.Compress))
{
int n = 0;
while((n = inputFile.Read(buffer, 0, buffer.Length)) != 0)
{
gzip.Write(buffer, 0, n);
}
}
}
}
}

public static void UncompressFile(string inputFileName, string outputFileName)
{
byte[] buffer = new byte[4096];
if(File.Exists(inputFileName))
{
using (FileStream intputFile = File.Open(inputFileName, FileMode.Open), outputFile = File.Create(outputFileName))
{
using (GZipStream gzip = new GZipStream(intputFile, CompressionMode.Decompress))
{
int n;
while ((n = gzip.Read(buffer, 0, buffer.Length)) != 0)
{
outputFile.Write(buffer, 0, n);
}
}
}
}
}
فيبي نت

كود :
Imports System.IO
Imports System.IO.Compression
Public Class HbGzip
Public Shared Function Compress(ByVal cheminSource As String, ByVal cheminCible As String) As String
Try
Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
Dim F_array(hbread.BaseStream.Length) As Byte
hbread.BaseStream.Seek(0, SeekOrigin.Begin)
hbread.BaseStream.Read(F_array, 0, F_array.Length)
hbread.BaseStream.Flush()
hbread.Close()
Dim tmpstream As FileStream = New FileStream(cheminCible, FileMode.OpenOrCreate)
Dim gzipper As GZipStream = New GZipStream(tmpstream, CompressionMode.Compress)
gzipper.Write(F_array, 0, F_array.Length)
gzipper.Flush()
gzipper.Close()
Return "compression effectuée avec succés"
Catch ex As Exception
Return ex.ToString
End Try
End Function
Public Shared Function Decompress(ByVal cheminSource As String, ByVal cheminCible As String) As String
Try
Dim bufferLen As Integer = 1024
Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
Dim gzipper As GZipStream = New GZipStream(hbread.BaseStream, CompressionMode.Decompress)
Dim hbwrite As New BinaryWriter(File.OpenWrite(cheminCible))
Dim F_array(bufferLen) As Byte
Dim readlen As Integer
Dim flag As Boolean = True
Do
readlen = gzipper.Read(F_array, 0, F_array.Length)
If readlen > 0 Then
flag = True
If readlen = (bufferLen + 1) Then hbwrite.Write(F_array, 0, readlen) Else hbwrite.Write(F_array, 0, readlen - 1)
Else
flag = False
End If
Loop While (flag)
hbwrite.Close()
gzipper.Close()
Return "decompression effectuée avec succés"
Catch ex As Exception
Return ex.ToString
End Try
End Function
End Class