۱۳۸۸/۰۵/۰۶

فشرده سازي با فرمت 7z


جي‌ميل هر ايميلي را كه به همراه آن يك فايل اجرايي پيوست شده باشد برگشت مي‌زند. Zip‌ كردن آن هم فايده ندارد چون محتويات فايل‌هاي zip را هم بررسي مي‌كند! فقط به نظر فرمت rar و همچنين 7z را بررسي نمي‌كند (احتمالا با مجوز آن مشكل دارد).
قوي‌ترين برنامه سورس بازي كه اين فرمت را پشتيباني مي‌كند، برنامه 7zip است و خوشبختانه محصور كننده‌هايي نيز جهت كار با كتابخانه‌هاي اين برنامه براي دات نت فريم ورك موجود است. براي مثال:


مزيت استفاده از اين كتابخانه اين است كه اغلب فرمت‌هاي پر كاربرد را نيز پشتيباني مي‌كند (شامل zip ، gz ، rar و ...).
براي استفاده از آن به فايل‌هاي 7z.dll و SevenZipSharp.dll نياز خواهيد داشت. 7z.dll از برنامه 7zip گرفته شده و SevenZipSharp.dll هم محصور كننده دات نتي آن است.

مثالي در مورد فشرده سازي با فرمت 7z با كمك كتابخانه‌هاي نامبرده شده:

using SevenZip;
using System.Windows.Forms;
using System;

class C7Z
{
public static void Compress7Z(string filePath, string outPath)
{
SevenZipCompressor.SetLibraryPath(String.Format(@"{0}\7z.dll", Application.StartupPath));
SevenZipCompressor cmp = new SevenZipCompressor
{
ArchiveFormat = OutArchiveFormat.SevenZip,
CompressionMethod = CompressionMethod.Lzma,
CompressionMode = CompressionMode.Create,
CompressionLevel = CompressionLevel.High,
VolumeSize = 0
};
cmp.CompressFiles(outPath, filePath);
}

}

C7Z.Compress7Z(@"C:\test\test.txt", @"C:\test\test.7z");
مثال‌هاي بيشتري را با دريافت سورس SevenZipSharp مي‌توانيد مشاهده كنيد.