تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ضغط - فك الضغط باستخدام الفئة gzip
#1
كاتب الموضوع : 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
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تدوير صورة حول مركزها باستخدام gdi+ RaggiTech 0 628 17-10-12, 09:30 PM
آخر رد: RaggiTech
  مثال لجملة update باستخدام متغير يحمل عبارة sql RaggiTech 0 367 17-10-12, 07:20 PM
آخر رد: RaggiTech
  لتحويل صورة ملونة إلى مستوى الرمادي باستخدام مصفوفة التحويل RaggiTech 0 402 17-10-12, 06:04 PM
آخر رد: RaggiTech
  القيام بعملية التحويل بين الألوان باستخدام الفئة ColorTranslator RaggiTech 0 237 17-10-12, 05:54 PM
آخر رد: RaggiTech
  التأكد من أن اسم مستعمل موجود باستخدام ال ActiveDirectory RaggiTech 0 266 17-10-12, 05:53 PM
آخر رد: RaggiTech
  منع المستخدم من اغلاق الفورم باستخدام x مباشرة RaggiTech 0 333 17-10-12, 05:45 PM
آخر رد: RaggiTech
  عمل Download لملف باستخدام ftp RaggiTech 0 223 17-10-12, 05:11 PM
آخر رد: RaggiTech
  التحويل من Object Array الي Double Array باستخدام Converterفي ال C# RaggiTech 0 222 17-10-12, 04:53 PM
آخر رد: RaggiTech
  استرجاع رقم عشوائي باستخدام Random Class RaggiTech 0 318 17-10-12, 04:47 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم