Class Archive

Class Archive

Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)

מחלקה זו מייצגת קובץ ארכיון zip. השתמש בה כדי להרכיב, לחלץ או לעדכן ארכיוני zip.

public class Archive : IArchive, IDisposable

ירושה

objectArchive

מיישם

IArchive, IDisposable

חברים שהורשו

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

בונים

Archive(ArchiveEntrySettings)

מאתחל מופע חדש של מחלקת Aspose.Zip.Archive עם הגדרות אופציונליות עבור הפריטים שלה.

public Archive(ArchiveEntrySettings newEntrySettings = null)

פרמטרים

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריטי Aspose.Zip.ArchiveEntry שנוספו לאחרונה. אם לא צוין, דחיסת Deflate הנפוצה ביותר ללא הצפנה תשתמש.

דוגמאות

הדוגמה הבאה מראה כיצד לדחוס קובץ בודד עם הגדרות ברירת מחדל.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

מאתחל מופע חדש של מחלקת Aspose.Zip.Archive ומרכיב רשימת פריטים שניתן לחלץ מהארכיון.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

sourceStream Stream

מקור הארכיון.

loadOptions ArchiveLoadOptions

אפשרויות לטעינת הארכיון הקיים.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריטי Aspose.Zip.ArchiveEntry שנוספו לאחרונה. אם לא צוין, דחיסת Deflate הנפוצה ביותר ללא הצפנה תשתמש.

דוגמאות

הדוגמה הבאה חוסמת ארכיון מוצפן, ואז מדחסת את הפריט הראשון ל-MemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

הערות

בונה זה אינו מדחס אף פריט. ראה את השיטה Aspose.Zip.ArchiveEntry.Open(System.String) לדחיסה.

חריגות

ArgumentException

sourceStream אינו ניתן לחיפוש.

InvalidDataException

כותרת ההצפנה עבור AES סותרת את שיטת הדחיסה של WinZip.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

מאתחל מופע חדש של מחלקת Aspose.Zip.Archive ומרכיב רשימת פריטים שניתן לחלץ מהארכיון.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

path string

הנתיב המלא או הנתיב היחסי לקובץ הארכיון.

loadOptions ArchiveLoadOptions

אפשרויות לטעינת הארכיון הקיים.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריטי Aspose.Zip.ArchiveEntry שנוספו לאחרונה. אם לא צוין, דחיסת Deflate הנפוצה ביותר ללא הצפנה תשתמש.

דוגמאות

הדוגמה הבאה חוסמת ארכיון מוצפן, ואז מדחסת את הפריט הראשון ל-MemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

הערות

בונה זה אינו מדחס אף פריט. ראה את השיטה Aspose.Zip.ArchiveEntry.Open(System.String) לדחיסה.

חריגות

ArgumentNullException

path הוא null.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה.

ArgumentException

path ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.

UnauthorizedAccessException

גישה לקובץ path נדחתה.

PathTooLongException

הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.

NotSupportedException

הקובץ בpath מכיל נקודתיים (:) באמצע המחרוזת.

FileNotFoundException

הקובץ לא נמצא.

DirectoryNotFoundException

הנתיב שניתן אינו חוקי, כמו להיות בכונן שאינו ממופה.

IOException

הקובץ כבר פתוח.

InvalidDataException

הקובץ פגום.

Archive(string, string[], ArchiveLoadOptions)

מאתחל מופע חדש של מחלקת Aspose.Zip.Archive מארכיון zip רב-נפח ומרכיב רשימת פריטים שניתן לחלץ מהארכיון.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

פרמטרים

mainSegment string

נתיב לחלק האחרון של הארכיון הרב-נפח עם המדריך המרכזי.

בדרך כלל חלק זה יש לו סיומת *.zip והוא קטן מהאחרים.

segmentsInOrder string[]

נתיבים לכל חלק פרט לאחרון של הארכיון zip הרב-נפח בהתאם לסדר.

בדרך כלל הם נקראים filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

אפשרויות לטעינת הארכיון הקיים.

דוגמאות

דוגמה זו חוסמת לתיקייה ארכיון של שלושה חלקים.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

חריגות

EndOfStreamException

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

מאפיינים

Entries

מקבל את הפריטים מסוג Aspose.Zip.ArchiveEntry המהווים את הארכיון.

public ReadOnlyCollection<archiveentry> Entries { get; }

ערך המאפיין

ReadOnlyCollection<ArchiveEntry&gt;

NewEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריטי Aspose.Zip.ArchiveEntry שנוספו לאחרונה.

public ArchiveEntrySettings NewEntrySettings { get; }

ערך המאפיין

ArchiveEntrySettings

שיטות

CreateEntries(DirectoryInfo, bool)

מוסיף לארכיון את כל הקבצים והספריות באופן רקורסיבי בתיקייה שניתנה.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

פרמטרים

directory DirectoryInfo

תיקייה לדחיסה.

includeRootDirectory bool

מציין אם לכלול את התיקייה הראשית עצמה או לא.

מחזיר

Archive

הארכיון עם הפריטים שהורכבו.

דוגמאות

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

חריגות

DirectoryNotFoundException

הנתיב לdirectory אינו חוקי, כמו להיות על כונן שאינו ממופה.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה לdirectory.

CreateEntries(string, bool)

מוסיף לארכיון את כל הקבצים והספריות באופן רקורסיבי בתיקייה שניתנה.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

פרמטרים

sourceDirectory string

תיקייה לדחיסה.

includeRootDirectory bool

מציין אם לכלול את התיקייה הראשית עצמה או לא.

מחזיר

Archive

הארכיון עם הפריטים שהורכבו.

דוגמאות

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

יוצר פריט בודד בתוך הארכיון.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

name string

שם הפריט.

path string

השם המלא של הקובץ החדש, או שם הקובץ היחסי שצריך לדחוס.

openImmediately bool

נכון אם יש לפתוח את הקובץ מיד, אחרת יש לפתוח את הקובץ בעת שמירת הארכיון.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.

מחזיר

ArchiveEntry

מופע של פריט zip.

דוגמאות

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

הערות

שם הפריט מוגדר אך ורק בפרמטר name. שם הקובץ שניתן בפרמטר path אינו משפיע על שם הפריט.

אם הקובץ נפתח מיד עם הפרמטר openImmediately, הוא חסום עד שהארכיון נשמר.

חריגות

ArgumentNullException

path הוא null.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה.

ArgumentException

path ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.

UnauthorizedAccessException

גישה לקובץ path נדחתה.

PathTooLongException

הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.

NotSupportedException

הקובץ בpath מכיל נקודתיים (:) באמצע המחרוזת.

CreateEntry(string, Stream, ArchiveEntrySettings)

יוצר פריט בודד בתוך הארכיון.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

name string

שם הפריט.

source Stream

הזרם הקלט עבור הפריט.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.

מחזיר

ArchiveEntry

מופע של פריט zip.

דוגמאות

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

יוצר פריט בודד בתוך הארכיון.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

name string

שם הפריט.

fileInfo FileInfo

מטא-נתונים של הקובץ שצריך לדחוס.

openImmediately bool

נכון אם יש לפתוח את הקובץ מיד, אחרת יש לפתוח את הקובץ בעת שמירת הארכיון.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.

מחזיר

ArchiveEntry

מופע של פריט zip.

דוגמאות

מרכיב ארכיון עם פריטים מוצפנים עם שיטות הצפנה וסיסמאות שונות לכל אחד.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

הערות

שם הפריט מוגדר אך ורק בפרמטר name. שם הקובץ שניתן בפרמטר fileInfo אינו משפיע על שם הפריט.

אם הקובץ נפתח מיד עם הפרמטר openImmediately, הוא חסום עד שהארכיון נשמר.

חריגות

UnauthorizedAccessException

fileInfo הוא רק לקריאה או ספרייה.

DirectoryNotFoundException

הנתיב שניתן אינו חוקי, כמו להיות על כונן שאינו ממופה.

IOException

הקובץ כבר פתוח.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

יוצר פריט בודד בתוך הארכיון.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

פרמטרים

name string

שם הפריט.

source Stream

הזרם הקלט עבור הפריט.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.

fileInfo FileSystemInfo

מטא-נתונים של הקובץ או התיקייה שצריך לדחוס.

מחזיר

ArchiveEntry

מופע של פריט zip.

דוגמאות

מרכיב ארכיון עם פריט מוצפן.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

הערות

שם הפריט מוגדר אך ורק בפרמטר name. שם הקובץ שניתן בפרמטר fileInfo אינו משפיע על שם הפריט.

fileInfo עשוי להתייחס ל-System.IO.DirectoryInfo אם הפריט הוא ספרייה.

חריגות

InvalidOperationException

גם source וגם fileInfo הם null או source הוא null וfileInfo מתייחס לספרייה.

CreateEntry(string, Func<stream>, ArchiveEntrySettings)

יוצר פריט בודד בתוך הארכיון.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

פרמטרים

name string

שם הפריט.

streamProvider Func<Stream&gt;

השיטה המספקת זרם קלט עבור הפריט.

newEntrySettings ArchiveEntrySettings

הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.

מחזיר

ArchiveEntry

מופע של פריט zip.

דוגמאות

מרכיב ארכיון עם פריט מוצפן.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

הערות

שיטה זו מיועדת לגרסה .NET Framework 4.0 ומעלה ולגרסה .NET Standard 2.0.

DeleteEntry(ArchiveEntry)

מסיר את ההופעה הראשונה של פריט ספציפי מרשימת הפריטים.

public Archive DeleteEntry(ArchiveEntry entry)

פרמטרים

entry ArchiveEntry

הפריט להסרה מרשימת הפריטים.

מחזיר

Archive

הארכיון עם הפריט שנמחק.

דוגמאות

כך ניתן להסיר את כל הפריטים פרט לאחרון:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

חריגות

ObjectDisposedException

הארכיון פג.

DeleteEntry(int)

מסיר את הפריט מרשימת הפריטים לפי אינדקס.

public Archive DeleteEntry(int entryIndex)

פרמטרים

entryIndex int

האינדקס המבוסס על אפס של הפריט להסרה.

מחזיר

Archive

הארכיון עם הפריט שנמחק.

דוגמאות

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

חריגות

ObjectDisposedException

הארכיון פג.

ArgumentOutOfRangeException

entryIndex הוא קטן מ-0.-או- entryIndex שווה או גדול מEntries count.

Dispose()

מבצע משימות שהוגדרו על ידי היישום הקשורות לשחרור, שחרור או איפוס של משאבים בלתי מנוהלים.

public void Dispose()

Dispose(bool)

מבצע משימות שהוגדרו על ידי היישום הקשורות לשחרור, שחרור או איפוס של משאבים בלתי מנוהלים.

protected virtual void Dispose(bool disposing)

פרמטרים

disposing bool

האם יש לשחרר משאבים מנוהלים.

ExtractToDirectory(string)

חולץ את כל הקבצים בארכיון לתיקייה שניתנה.

public void ExtractToDirectory(string destinationDirectory)

פרמטרים

destinationDirectory string

הנתיב לתיקייה בה יש למקם את הקבצים החולצים.

דוגמאות

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

הערות

אם התיקייה אינה קיימת, היא תיווצר.

חריגות

ArgumentNullException

destinationDirectory הוא null.

PathTooLongException

הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים ושמות הקבצים חייבים להיות פחות מ-260 תווים.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה לתיקייה הקיימת.

NotSupportedException

אם התיקייה אינה קיימת, הנתיב מכיל תו נקודתיים (:) שאינו חלק מתווית כונן (“C:").

ArgumentException

destinationDirectory הוא מחרוזת באורך אפס, מכיל רק רווחים, או מכיל תו או יותר לא חוקיים. ניתן לשאול על תווים לא חוקיים באמצעות השיטה System.IO.Path.GetInvalidPathChars. -או- הנתיב מקדים, או מכיל, רק תו נקודתיים (:).

IOException

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

InvalidDataException

סיסמה שגויה סופקה. - או - הארכיון פגום.

Save(Stream, ArchiveSaveOptions)

שומר את הארכיון לזרם שסופק.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

פרמטרים

outputStream Stream

זרם היעד.

saveOptions ArchiveSaveOptions

אפשרויות לשמירת הארכיון.

דוגמאות

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

הערות

outputStream חייב להיות נכתב.

חריגות

ArgumentException

outputStream אינו נכתב.

ObjectDisposedException

הארכיון פג.

Save(string, ArchiveSaveOptions)

שומר את הארכיון לקובץ היעד שסופק.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

פרמטרים

destinationFileName string

הנתיב של הארכיון שצריך להיווצר. אם שם הקובץ שסופק מצביע על קובץ קיים, הוא יוחלף.

saveOptions ArchiveSaveOptions

אפשרויות לשמירת הארכיון.

דוגמאות

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

הערות

ניתן לשמור ארכיון באותו נתיב שממנו הוא נטען. עם זאת, זה לא מומלץ מכיוון שגישה זו משתמשת בהעתקה לקובץ זמני.

חריגות

ArgumentNullException

destinationFileName הוא null.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה.

ArgumentException

destinationFileName ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.

UnauthorizedAccessException

גישה לקובץ destinationFileName נדחתה.

PathTooLongException

הנתיב המצויין destinationFileName, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.

NotSupportedException

הקובץ בdestinationFileName מכיל נקודתיים (:) באמצע המחרוזת.

FileNotFoundException

הקובץ לא נמצא.

DirectoryNotFoundException

הנתיב שניתן אינו חוקי, כמו להיות על כונן שאינו ממופה.

IOException

הקובץ כבר פתוח.

SaveSplit(string, SplitArchiveSaveOptions)

שומר ארכיון רב-נפח לתיקיית היעד שסופקה.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

פרמטרים

destinationDirectory string

הנתיב לתיקייה שבה יש ליצור את קטעי הארכיון.

options SplitArchiveSaveOptions

אפשרויות לשמירת הארכיון, כולל שם הקובץ.

דוגמאות

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

הערות

שיטה זו מרכיבה מספר (n) קבצים filename.z01, filename.z02, ..., filename.z(n-1), filename.zip.

לא ניתן להפוך ארכיון קיים לרב-נפח.

חריגות

InvalidOperationException

הארכיון הזה נפתח ממקור קיים.

NotSupportedException

הארכיון הזה גם דחוס בשיטת XZ וגם מוצפן.

ArgumentNullException

destinationDirectory הוא null.

SecurityException

לקרוא אין את ההרשאה הנדרשת לגישה לתיקייה.

ArgumentException

destinationDirectory מכיל תווים לא חוקיים כגון “, >, <, או |.

PathTooLongException

הנתיב המצויין חורג מהאורך המרבי המוגדר על ידי המערכת.

ObjectDisposedException

הארכיון פג.

 Ελληνικά