aspose.info
FA

ZIP

به‌روزرسانی

فایل ZIP چیست؟

A file with .zip extension is an archive that can hold one or more files or directories. The archive can have compression applied to the included files in order to reduce the ZIP file size. ZIP file format was made public back in February 1989 by Phil Katz for achieving archiving of files and folders. The format was made part of PKZIP utility, created by PKWARE, Inc. Right after the availability of available specifications, many companies made ZIP file format part of their software utilities including Microsoft (since Windows 7), Apple (Mac OS X ) and many others.

تاریخچه مختصر فرمت فایل ZIP

تاریخچه فرمت فایل ZIP به پرونده شکایتی که توسط System Enhancement Associates (SEA) علیه PKWARE به دلیل استفاده از ابزار ARC بدون مجوز برای علامت تجاری آن و حق نسخه برداری ظاهر و رابط کاربری محصول ارائه شد، برمی گردد. قبل از این، فیل کاتز، کد منبع SEA را بازنویسی کرده بود و PKXARC، یک استخراج کننده ARC، و PKARC، یک کمپرسور فایل را به عنوان نرم افزار رایگان برای سیستم های مبتنی بر MS-DOS منتشر کرده بود. PKWARE با شکست در این دعوی دیگر نمی‌توانست از هیچ چیز مرتبط با ARC استفاده کند. اینجاست که ایجاد یک فشرده سازی فایل جدید به نام ZIP که بخشی از ابزار PKZIP در PKWARE, Inc.

کاتز مشخصات فرمت فایل ZIP را در دامنه عمومی منتشر کرد، در حالی که حقوق اختصاصی ابزار فشرده سازی و استخراج خود یعنی PKZIP را حفظ کرد. سیستم فشرده‌سازی ZIP قادر بود (و می‌تواند) فایل‌ها را در یک پوشه با استفاده از الگوریتم بررسی افزونگی چرخه‌ای 32 بیتی (CRC) برای فشرده‌سازی اندازه فایل‌ها بایگانی کند. برخلاف ARC، پوشه‌های .ZIP شامل یک فایل دایرکتوری بود که نقش کتاب کد رمزنگار را بازی می‌کرد و اطلاعات لازم برای ارائه فایل‌های فشرده را در خود نگه می‌داشت.

روش های فشرده سازی پشتیبانی شده در ZIP

طبق مشخصات فرمت فایل .ZIP، روش های فشرده سازی زیر پشتیبانی می شوند.

  • فروشگاه - به معنای عدم فشرده سازی است

  • کوچک شدن

  • کاهش (این به معنی فاکتورهای فشرده سازی از سطح 1 تا سطح 4 است)

  • منفجر شدن

  • باد کردن

  • Deflat64

  • BZIP2

  • LZMA (EFS)

  • WavPack

  • PPMd نسخه I، Rev 1

DEFLATE is the commonly used compression method which is a lossless date compression algorithm that uses a combination of the LZ77 and Huffman coding and is detailed in RFC 1951.

مشخصات فرمت فایل ZIP

فایل های ZIP قابلیت ذخیره چندین فایل را با استفاده از تکنیک های فشرده سازی مختلف دارند و در عین حال از ذخیره یک فایل بدون هیچ گونه فشرده سازی پشتیبانی می کنند. هر فایل به‌صورت جداگانه ذخیره/فشرده می‌شود که به استخراج آن‌ها یا افزودن فایل‌های جدید بدون اعمال فشرده‌سازی یا رفع فشرده‌سازی در کل آرشیو کمک می‌کند.

فرمت کلی فایل ZIP

ساختار هر فایل Zip به شکل زیر است:

فرمت فایل زیپ
سربرگ فایل محلی 1
داده فایل 1
توصیفگر داده 1
سربرگ فایل محلی 2
داده فایل 2
توصیفگر داده 2
….
….
سربرگ فایل محلی N
داده فایل N
توصیفگر داده N
سربرگ رمزگشایی آرشیو
بایگانی رکورد داده های اضافی
دایرکتوری مرکزی

فرمت فایل ZIP از الگوریتم CRC 32 بیتی برای آرشیو کردن استفاده می کند. برای رندر کردن فایل‌های فشرده، یک بایگانی ZIP یک دایرکتوری را در انتهای خود نگه می‌دارد که ورودی فایل‌های موجود و مکان آنها را در فایل بایگانی نگه می‌دارد. بنابراین، نقش رمزگذاری را برای کپسوله کردن اطلاعات لازم برای ارائه فایل های فشرده ایفا می کند. خوانندگان ZIP از دایرکتوری برای بارگذاری لیست فایل ها بدون خواندن کل آرشیو ZIP استفاده می کنند. این قالب کپی های دوگانه از ساختار دایرکتوری را نگه می دارد تا محافظت بیشتری در برابر از دست دادن داده ها ایجاد کند.

هر فایل در یک بایگانی ZIP به عنوان یک ورودی منفرد نشان داده می شود که در آن هر ورودی شامل یک سربرگ فایل محلی و به دنبال آن داده های فایل فشرده است. دایرکتوری در انتهای بایگانی ارجاعات به تمام این ورودی های فایل را نگه می دارد. خوانندگان فایل ZIP باید از خواندن سرصفحه های فایل محلی خودداری کنند و همه انواع لیست فایل ها باید از دایرکتوری خوانده شوند. این دایرکتوری تنها منبع برای ورودی های فایل معتبر در بایگانی است زیرا فایل ها را می توان تا انتهای آرشیو نیز اضافه کرد. به همین دلیل است که اگر یک خواننده سرصفحه های محلی یک بایگانی ZIP را از ابتدا بخواند، ممکن است ورودی های نامعتبر (حذف شده) را بخواند و همچنین بخشی از دایرکتوری در حال حذف از بایگانی نیست.

ترتیب ورودی های فایل در دایرکتوری مرکزی نباید با ترتیب ورودی های فایل در آرشیو منطبق باشد.

ورودی های فایل ZIP

ورودی های فایل ZIP یکی پس از دیگری مرتب می شوند که در آن هر ورودی شامل موارد زیر است:

  • سربرگ فایل محلی

  • فیلدهای داده اضافی اختیاری

  • داده های کاربر (اختیاری فشرده / اختیاری رمزگذاری شده)

سربرگ فایل محلی هر ورودی اطلاعات مربوط به فایل مانند نظر، اندازه فایل و نام فایل را نشان می دهد. فیلدهای داده اضافی (اختیاری) می توانند اطلاعاتی را برای گزینه های توسعه پذیری با فرمت ZIP در خود جای دهند.

سربرگ فایل محلی

سربرگ فایل محلی دارای ساختار فیلد خاصی است که از مقادیر چند بایتی تشکیل شده است. همه مقادیر به ترتیب بایت اندکی ذخیره می شوند که در آن طول فیلد طول را بر حسب بایت می شمارد. تمام ساختارهای یک فایل ZIP از امضاهای 4 بایتی برای هر ورودی فایل استفاده می کنند. انتهای امضای دایرکتوری مرکزی 0x06054b50 است و با امضای منحصر به فرد خود قابل تشخیص است. در زیر ترتیب اطلاعات ذخیره شده در سربرگ فایل محلی آمده است.

Offsetبایتتوضیحات
04امضای سرصفحه فایل محلی # 0x04034b50 (خوانده شده به عنوان یک عدد اندین کوچک)
42نسخه مورد نیاز برای استخراج (حداقل)
62پرچم بیت هدف عمومی
82روش فشرده سازی
102زمان آخرین اصلاح فایل
122آخرین تاریخ اصلاح فایل
144CRC-32
184سایز فشرده
224سایز فشرده نشده
262طول نام فایل (n)
282طول میدان اضافی (متر)
30nنام فایل
30+nmفیلد اضافی

سربرگ فایل دایرکتوری مرکزی

Offsetبایتتوضیحات
04امضای هدر فایل دایرکتوری مرکزی # 0x02014b50
42نسخه ساخته شده توسط
62نسخه مورد نیاز برای استخراج (حداقل)
82پرچم بیت هدف عمومی
102روش فشرده سازی
122آخرین زمان اصلاح فایل
142آخرین تاریخ اصلاح فایل
164CRC-32
204سایز فشرده
244سایز فشرده نشده
282طول نام فایل (n)
302طول میدان اضافی (متر)
322طول نظر فایل (k)
342شماره دیسک جایی که فایل شروع می شود
362ویژگی های فایل داخلی
384ویژگی های فایل خارجی
424افست نسبی هدر فایل محلی. این تعداد بایت ها بین شروع اولین دیسکی است که فایل روی آن قرار می گیرد و شروع هدر فایل محلی. این اجازه می دهد تا نرم افزار خواندن دایرکتوری مرکزی موقعیت فایل را در داخل فایل ZIP پیدا کند.
46nنام فایل
46+nmفیلد اضافی
46+n+mkنظر فایل

پایان ثبت دایرکتوری مرکزی

Offsetبایتتوضیحات
04انتهای امضای دایرکتوری مرکزی # 0x06054b50
42شماره این دیسک
62دیسکی که دایرکتوری مرکزی شروع می شود
82تعداد رکوردهای دایرکتوری مرکزی روی این دیسک
102تعداد کل رکوردهای دایرکتوری مرکزی
124اندازه دایرکتوری مرکزی (بایت)
164تغییر شروع فهرست مرکزی، نسبت به شروع بایگانی
202طول نظر (n)
22nنظر

منابع

همچنین ببینید