Я вже розмістив на курсі помічника стиснення і майже відразу зрозумів, що він страждав від "маленької затримки" - отже, його так сильно змінили протягом місяців, що він був дійсно поганим! В будь-якому разі, показана нижче є модифікованою версією того класу (на якій я також випробував мою нову схему форматування) як нагадування, це просто обгортка навколо SharpZipLib.
використання системи;
за допомогою System.Text;
за допомогою System.IO;
за допомогою ICSapCode.SapZipLib;
Space SerializableJob. Compresession
{
публічний набір стискання
{
GZip,
BZip2,
Zip
}
Стискання публічного класу
{
published StriverType Provider = spressedType.GZip;
private Steam Stream Postream inputStream)
{
switch}CoresionProvider)
{
scoreType. BZip2:
return new ICSapCode.SapZipLib. BZip2. BZip2OutputStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
specialType.GZip:
return new ICSapCode.SapZipLib.GZip.GZipOutPutStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
caseType. Zip:
return new ICSapCode.SapZipLib. Zip. ZipOutPutStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
типовий:
return new ICSapCode.SapZipLib.GZip.GZipOutPutStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
}
}
privaal Steam InternetStream inputStream)
{
switch}CoresionProvider)
{
scoreType. BZip2:
return new ICSapCode.SapZipLib. BZip2. BZip2 InputStream}ТутСтрем);
specialType.GZip:
return new ICSapCode.SapZipLib.GZip.GZipInputStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
caseType. Zip:
return new ICSapCode.SapZipLib. Zip. ZipInputStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
типовий:
return new ICSapCode.SapZipLib.GZip.GZipInputStream} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
}
}
публічний статичний байт[] Compress}байт[] bytesTompress)
{
MemoryStream ms = new MemoryStram}
Потік s = ВивідСтемс);
NW} collectionsToComres, 0, байтівTompress. Length);
close);
return ms. Toreath);
}
публічний статичний рядок Compress}рядковий рядок для доповнення)
{
byte[] стиснуті Data = CompressToByte}рядок ToCompares);
string strOut = Convert. ToBase64String} compressedData);
return strOut;
}
публічний статичний байт[] CompressToByte} Рядок для доповнення) Description of a condition. Do not translate key words (# V1S #, # V1 #,)
{
byte[] bytData = Encoding.Unicode. GetBytes}рядокToCompares);
return Compress}bytData);;
}
публічний рядок DeComples}рядковий рядок ToDepress)
{
string outString = string.Empty;
if (рядок ToDecком == null)
{
кинути новий ArgumentNullExce} "рядокToDepress" "Ви намагалися використовувати порожній рядок";
}
спробувати
{
byte[] inArr = Convert. FromBase64String}рядок ToDepress. Trims});
outString = System.Text.Encoding.Unicode.GetStringDeCompares});
}
patch (NullReferenceExcoding nEx)
{
return nEx.Message;
}
return outString;
}
публічний статичний байт[] DeCompares} specificate[] байтівToDepress)
{
byte[] writeData = новий байт[4096];
Потік s2 = InputStream ♪
MemoryStream outStream = new MemoryStream}
while} Так)
{
int розмір = s2. Readify}% 2, writeData.Length);
if}ize>0)
{
outStream. Write=priteData, 0. size);
}
else
{
break;
}
}
s2.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >
byte[] outArr = outStream. toream);
outStream. close});
returnArrt;
}
}
} ?>
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.