כל האמת על zip

לפני כמה שבועות ראיתי פרויקט שמשתמש ב-ZIP  בצורה מכובדת.

חלטתי שזה הזמן לספר את האמת על ZIP  בגרסה האחרונה של NET .

עד לא מזמן לא היה פתרון בתוך ה-framework לעבודה עם כיווץ ZIP.

המון מפתחים בעולם השתמשו בקומפוננטות של צד שלישי, למשל “DotnetZip”.

ב-NET 4.5. מיקרוסופט סוף סוף הוסיפו מימוש לתוך ה-framework

את המחלקה הרלוונטית אפשר למצוא ב  System.IO.Compression

דוגמא 1:

 –         startPath–נתיב לתיקיה שעליה רוצים לעבוד

          למשל, c:\zipexample\start

start

–         zipPath–נתיב לקובץ שיווצר מסוג zip (כולל מסלול מלא של תיקיה ושם קובץ)

          למשל, c:\zipexample\result.zip

resultzip

–         CompressionLevel – רמת דחיסה

          למשל,  אופטימאלי , מהיר ביותר או ללא דחיסה

–         isIncludeBaseDirectory – ערך בוליאני, האם בזמן יצירת קובץ zip לכלול את התיקיה  הראשית

דוגמא 2:

–         zipPath–נתיב לקובץ zip שאותו רוצים לפתוח ולבטל את הדחיסה (uncompressed).

           למשל, c:\zipexample\result.zip

resultzip

–         extractPath – נתיב לאן רוצים לפתוח את הקובץ

          למשל, c:\zipexample\extract

extract

טיפ\באג השבוע :

אם אני רוצה לעשות מניפולציה על קובץ zip.

למשל, אם יש קובץ ששמו test2  בתוך הארכיב – למחוק אותו.

אז הקוד הבא,

 מייצר באג!!!

Collection was modified; enumeration operation may not execute.

אז הפתרון הוא לעשות loop על אותם Entries.

מצרף פה קוד מלא של הפוסט הזה:

 

מקווה שנהנתם 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

*