هرچند از دات نت 4 و نیم به بعد، الگوریتم Zip به صورت توکار پشتیبانی میشود، اما برای نگارشهای پایینتر، کتابخانه DotNetZip جزو پرکاربردترینها در این زمینه است.
از همین کتابخانه مدتی در یک سرور معمولی بدون مشکل استفاده کرده بودم تا اینکه پس از ارتقاء به سرور جدید با خراب بودن فایلهای Zip حاصل مواجه شدم. پس از بررسی مشخص شد که این کتابخانه با CPUهای چند هستهای مشکل دارد و باید این نوع پردازش موازی را در آن خاموش کرد:
همانطور که مشاهده میکنید، برای غیرفعال سازی پردازش موازی، فقط کافی است پارامتر ParallelDeflateThreshold با منهای یک مقدار دهی شود.
همچنین اگر نام فایلهای شما فارسی است نیاز است UseUnicodeAsNecessary نیز به true تنظیم گردد.
در کل گاهی از اوقات همین نکات کوتاه میتوانند از صدمات جدی در آینده جلوگیری کنند. خصوصا اگر از این محصول جهت تهیه پشتیبان استفاده شده باشد.
از همین کتابخانه مدتی در یک سرور معمولی بدون مشکل استفاده کرده بودم تا اینکه پس از ارتقاء به سرور جدید با خراب بودن فایلهای Zip حاصل مواجه شدم. پس از بررسی مشخص شد که این کتابخانه با CPUهای چند هستهای مشکل دارد و باید این نوع پردازش موازی را در آن خاموش کرد:
using (var zf = new ZipFile()) { zf.UseUnicodeAsNecessary = true; zf.ParallelDeflateThreshold = -1; zf.Comment = "…."; zf.AddFile(path, "programName"); zf.Save(whereToSave); }
همچنین اگر نام فایلهای شما فارسی است نیاز است UseUnicodeAsNecessary نیز به true تنظیم گردد.
در کل گاهی از اوقات همین نکات کوتاه میتوانند از صدمات جدی در آینده جلوگیری کنند. خصوصا اگر از این محصول جهت تهیه پشتیبان استفاده شده باشد.