Class Archive
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
מחלקה זו מייצגת קובץ ארכיון zip. השתמש בה כדי להרכיב, לחלץ או לעדכן ארכיוני zip.
public class Archive : 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) לדחיסה.
חריגות
sourceStream
אינו ניתן לחיפוש.
כותרת ההצפנה עבור 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) לדחיסה.
חריגות
path
הוא null.
לקרוא אין את ההרשאה הנדרשת לגישה.
path
ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.
גישה לקובץ path
נדחתה.
הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.
הקובץ בpath
מכיל נקודתיים (:) באמצע המחרוזת.
הקובץ לא נמצא.
הנתיב שניתן אינו חוקי, כמו להיות בכונן שאינו ממופה.
הקובץ כבר פתוח.
הקובץ פגום.
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");
}
חריגות
לא ניתן לטעון את כותרות ה-ZIP מכיוון שהקבצים שסופקו פגומים.
מאפיינים
Entries
מקבל את הפריטים מסוג Aspose.Zip.ArchiveEntry המהווים את הארכיון.
public ReadOnlyCollection<archiveentry> Entries { get; }
ערך המאפיין
ReadOnlyCollection<ArchiveEntry>
NewEntrySettings
הגדרות דחיסה והצפנה המשמשות עבור פריטי Aspose.Zip.ArchiveEntry שנוספו לאחרונה.
public ArchiveEntrySettings NewEntrySettings { get; }
ערך המאפיין
שיטות
CreateEntries(DirectoryInfo, bool)
מוסיף לארכיון את כל הקבצים והספריות באופן רקורסיבי בתיקייה שניתנה.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
פרמטרים
directory
DirectoryInfo
תיקייה לדחיסה.
includeRootDirectory
bool
מציין אם לכלול את התיקייה הראשית עצמה או לא.
מחזיר
הארכיון עם הפריטים שהורכבו.
דוגמאות
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
חריגות
הנתיב לdirectory
אינו חוקי, כמו להיות על כונן שאינו ממופה.
לקרוא אין את ההרשאה הנדרשת לגישה לdirectory
.
CreateEntries(string, bool)
מוסיף לארכיון את כל הקבצים והספריות באופן רקורסיבי בתיקייה שניתנה.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
פרמטרים
sourceDirectory
string
תיקייה לדחיסה.
includeRootDirectory
bool
מציין אם לכלול את התיקייה הראשית עצמה או לא.
מחזיר
הארכיון עם הפריטים שהורכבו.
דוגמאות
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 שנוסף.
מחזיר
מופע של פריט 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
, הוא חסום עד שהארכיון נשמר.
חריגות
path
הוא null.
לקרוא אין את ההרשאה הנדרשת לגישה.
path
ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.
גישה לקובץ path
נדחתה.
הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.
הקובץ בpath
מכיל נקודתיים (:) באמצע המחרוזת.
CreateEntry(string, Stream, ArchiveEntrySettings)
יוצר פריט בודד בתוך הארכיון.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
פרמטרים
name
string
שם הפריט.
source
Stream
הזרם הקלט עבור הפריט.
newEntrySettings
ArchiveEntrySettings
הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.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 שנוסף.
מחזיר
מופע של פריט 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
, הוא חסום עד שהארכיון נשמר.
חריגות
fileInfo
הוא רק לקריאה או ספרייה.
הנתיב שניתן אינו חוקי, כמו להיות על כונן שאינו ממופה.
הקובץ כבר פתוח.
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
מטא-נתונים של הקובץ או התיקייה שצריך לדחוס.
מחזיר
מופע של פריט 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 אם הפריט הוא ספרייה.
חריגות
גם 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>
השיטה המספקת זרם קלט עבור הפריט.
newEntrySettings
ArchiveEntrySettings
הגדרות דחיסה והצפנה המשמשות עבור פריט Aspose.Zip.ArchiveEntry שנוסף.
מחזיר
מופע של פריט zip.
דוגמאות
מרכיב ארכיון עם פריט מוצפן.
System.Func<Stream> 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
הפריט להסרה מרשימת הפריטים.
מחזיר
הארכיון עם הפריט שנמחק.
דוגמאות
כך ניתן להסיר את כל הפריטים פרט לאחרון:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
חריגות
הארכיון פג.
DeleteEntry(int)
מסיר את הפריט מרשימת הפריטים לפי אינדקס.
public Archive DeleteEntry(int entryIndex)
פרמטרים
entryIndex
int
האינדקס המבוסס על אפס של הפריט להסרה.
מחזיר
הארכיון עם הפריט שנמחק.
דוגמאות
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
חריגות
הארכיון פג.
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");
}
הערות
אם התיקייה אינה קיימת, היא תיווצר.
חריגות
destinationDirectory
הוא null.
הנתיב, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת. לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים ושמות הקבצים חייבים להיות פחות מ-260 תווים.
לקרוא אין את ההרשאה הנדרשת לגישה לתיקייה הקיימת.
אם התיקייה אינה קיימת, הנתיב מכיל תו נקודתיים (:) שאינו חלק מתווית כונן (“C:").
destinationDirectory
הוא מחרוזת באורך אפס, מכיל רק רווחים, או מכיל תו או יותר לא חוקיים. ניתן לשאול על תווים לא חוקיים באמצעות השיטה System.IO.Path.GetInvalidPathChars.
-או- הנתיב מקדים, או מכיל, רק תו נקודתיים (:).
התיקייה המצוינת על ידי הנתיב היא קובץ. -או- שם הרשת אינו ידוע.
סיסמה שגויה סופקה. - או - הארכיון פגום.
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
חייב להיות נכתב.
חריגות
outputStream
אינו נכתב.
הארכיון פג.
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 });
}
הערות
ניתן לשמור ארכיון באותו נתיב שממנו הוא נטען. עם זאת, זה לא מומלץ מכיוון שגישה זו משתמשת בהעתקה לקובץ זמני.
חריגות
destinationFileName
הוא null.
לקרוא אין את ההרשאה הנדרשת לגישה.
destinationFileName
ריק, מכיל רק רווחים, או מכיל תווים לא חוקיים.
גישה לקובץ destinationFileName
נדחתה.
הנתיב המצויין destinationFileName
, שם הקובץ, או שניהם превышают את האורך המרבי המוגדר על ידי המערכת.
לדוגמה, בפלטפורמות מבוססות Windows, הנתיבים חייבים להיות פחות מ-248 תווים, ושמות הקבצים חייבים להיות פחות מ-260 תווים.
הקובץ בdestinationFileName
מכיל נקודתיים (:) באמצע המחרוזת.
הקובץ לא נמצא.
הנתיב שניתן אינו חוקי, כמו להיות על כונן שאינו ממופה.
הקובץ כבר פתוח.
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.
לא ניתן להפוך ארכיון קיים לרב-נפח.
חריגות
הארכיון הזה נפתח ממקור קיים.
הארכיון הזה גם דחוס בשיטת XZ וגם מוצפן.
destinationDirectory
הוא null.
לקרוא אין את ההרשאה הנדרשת לגישה לתיקייה.
destinationDirectory
מכיל תווים לא חוקיים כגון “, >, <, או |.
הנתיב המצויין חורג מהאורך המרבי המוגדר על ידי המערכת.
הארכיון פג.