Class Archive
اسم الفضاء : Aspose.Zip تجميع: Aspose.Zip.dll (25.5.0)
هذه الفئة تمثل ملف أرشيف zip. استخدمها لتكوين أو استخراج أو تحديث ملفات zip .
public class Archive : IArchive, IDisposable
Inheritance
Implements
الأعضاء الموروثين
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
يبدأ عرضًا جديدًا من فئة Aspose.Zip.Archive مع إعدادات اختيارية لإدخاله.
public Archive(ArchiveEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.
Examples
يظهر المثال التالي كيفية ضغط ملف واحد مع الإعدادات الافتراضية.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(zipFile);
}
}
Archive(أرشيف أرشيف أرشيف أرشيف أرشيف)
يبدأ مثالًا جديدًا من فئة Aspose.Zip.Archive ويجمع قائمة إدخالات يمكن استخراجها من الأرشيف.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
sourceStream
Stream
مصدر الأرشيف .
loadOptions
ArchiveLoadOptions
خيارات تحميل الأرشيف الحالي مع.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.
Examples
في المثال التالي ، يتم استخراج أرشيف مشفر ، ثم يتم تفكيك الإدخال الأول إلى .
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);
}
}
Remarks
هذا البناء لا يقطع أي إدخال. انظر Aspose.Zip.ArchiveEntry.Open(System.String) طريقة للقطع.
Exceptions
sourceStream’ is not seekable.
عنوان التشفير لـ AES يتعارض مع طريقة ضغط WinZip.
Archive(أرشيف, ArchiveLoadOptions, ArchiveEntrySettings)
يبدأ مثالًا جديدًا من فئة Aspose.Zip.Archive ويجمع قائمة إدخالات يمكن استخراجها من الأرشيف.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
path
string
المسار الكامل أو المسار النسبي إلى ملف الأرشيف.
loadOptions
ArchiveLoadOptions
خيارات تحميل الأرشيف الحالي مع.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.
Examples
في المثال التالي ، يتم استخراج أرشيف مشفر ، ثم يتم تفكيك الإدخال الأول إلى .
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);
}
}
Remarks
هذا البناء لا يقطع أي إدخال. انظر Aspose.Zip.ArchiveEntry.Open(System.String) طريقة للقطع.
Exceptions
path’ is null.
لا يحصل المتصل على إذن الوصول المطلوب.
الطريق " فارغ ، يحتوي على مساحات بيضاء فقط ، أو يحتوي على أحرف غير صحيحة.
يتم رفض الوصول إلى ملف path".
على سبيل المثال ، على المنصات المستندة إلى Windows ، يجب أن تكون المسارات أقل من 248 حرفًا ، ويجب أن يكون اسم الملف أقل من 260 حرفًا.
ملف في path’ يحتوي على عمود (:) في وسط السلسلة.
لم يتم العثور على الملف.
المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.
الملف مفتوح بالفعل.
وقد تم تدمير الملف.
Archive(ستيفن، ستيفن[ ]أرشيف الخيارات)
يبدأ مثالًا جديدًا من فئة Aspose.Zip.Archive من أرشيف zip متعدد الحجم ويجمع قائمة إدخال يمكن استخراجها من الأرشيف.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
الطريق إلى الجزء الأخير من الأرشيف متعدد الحجم مع الدليل المركزي.
عادة هذا القسم لديه *.zip التمديد وأصغر من غيرها.
segmentsInOrder
string
[ ]
خطوات إلى كل قطعة ولكن آخر من أرشيف زيب متعددة الحجم يحترم الطلب.
عادة ما تسمى filename.z01, filename.z02, …, filename.z(n-1).
loadOptions
ArchiveLoadOptions
خيارات تحميل الأرشيف الحالي مع.
Examples
هذا العينة يخرج إلى دليل أرشيف من ثلاثة أجزاء.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}
Exceptions
لا يمكن تحميل عناوين ZIP لأن الملفات المقدمة مزورة.
Properties
Entries
يحصل على إدخالات من Aspose.Zip.ArchiveEntry النوع الذي يشكل الأرشيف.
public ReadOnlyCollection<archiveentry> Entries { get; }
قيمة الممتلكات
ReadOnlyCollection <؛ ArchiveEntry >
NewEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.
public ArchiveEntrySettings NewEntrySettings { get; }
قيمة الممتلكات
Methods
CreateEntries(أرشيف الوسم : Bool)
أضف إلى الأرشيف جميع الملفات والمجلدات بشكل متكرر في الدليل المحدد.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
فيديوهات متعلقة بـ Compress
includeRootDirectory
bool
إشارة إلى ما إذا كان لإدراج الدليل الجذر نفسه أم لا.
Returns
الأرشيف مع الإدخالات المكونة.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
المسار إلى directory’ غير صالح، على سبيل المثال، على محرك أقراص غير مسجلة.
لا يحصل المتصل على السماح المطلوب للوصول إلى directory".
CreateEntries(البول، البول)
أضف إلى الأرشيف جميع الملفات والمجلدات بشكل متكرر في الدليل المحدد.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
فيديوهات متعلقة بـ Compress
includeRootDirectory
bool
إشارة إلى ما إذا كان لإدراج الدليل الجذر نفسه أم لا.
Returns
الأرشيف مع الإدخالات المكونة.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}
CreateEntry(قوس قزح، قوس قزح، ArchiveEntrySettings)
إنشاء إدخال واحد داخل الأرشيف.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
اسم الدخول .
path
string
اسم الملف الجديد، أو اسم الملف النسبي الذي سيتم ضغطه.
openImmediately
bool
صحيح، إذا قمت بفتح الملف على الفور، وإلا فتح الملف على حفظ الأرشيف.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.
Returns
إدخال ZIP.
Examples
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(zipFile);
}
}
Remarks
يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.
إذا تم فتح الملف على الفور مع المعيار فإنه يتم حظرها حتى يتم حفظ الأرشيف.
Exceptions
path’ is null.
لا يحصل المتصل على إذن الوصول المطلوب.
الطريق " فارغ ، يحتوي على مساحات بيضاء فقط ، أو يحتوي على أحرف غير صحيحة.
يتم رفض الوصول إلى ملف path".
على سبيل المثال ، على المنصات المستندة إلى Windows ، يجب أن تكون المسارات أقل من 248 حرفًا ، ويجب أن يكون اسم الملف أقل من 260 حرفًا.
ملف في path’ يحتوي على عمود (:) في وسط السلسلة.
CreateEntry(أرشيف , أرشيف , أرشيف , أرشيف)
إنشاء إدخال واحد داخل الأرشيف.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
اسم الدخول .
source
Stream
تدفق الدخول للمدخل.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.
Returns
إدخال ZIP.
Examples
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(أرشيف الوسم : FileInfo, Bool, ArchiveEntrySettings)
إنشاء إدخال واحد داخل الأرشيف.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
اسم الدخول .
fileInfo
FileInfo
سيتم ضغط البيانات الميتا من الملفات.
openImmediately
bool
صحيح، إذا قمت بفتح الملف على الفور، وإلا فتح الملف على حفظ الأرشيف.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.
Returns
إدخال ZIP.
Examples
قم بتجميع الأرشيف مع الإدخالات المشفرة باستخدام أساليب التشفير المختلفة وكلمات المرور كل منها.
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);
}
}
Remarks
يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.
إذا تم فتح الملف على الفور مع المعيار فإنه يتم حظرها حتى يتم حفظ الأرشيف.
Exceptions
fileInfo’ is read-only or is a directory.
المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.
الملف مفتوح بالفعل.
CreateEntry(أرشيف الوسم : ArchiveEntrySettings, FileSystemInfo)
إنشاء إدخال واحد داخل الأرشيف.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
اسم الدخول .
source
Stream
تدفق الدخول للمدخل.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.
fileInfo
FileSystemInfo
سيتم ضغط البيانات الميتا من الملف أو المجلد.
Returns
إدخال ZIP.
Examples
قم بتجميع الأرشيف مع إدخال مشفر.
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);
}
}
Remarks
يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.
يمكن الإشارة إلى System.IO.DirectoryInfo إذا كان الإدخال هو الدليل.
Exceptions
كل من source’ و
fileInfo’ صفر أو
source’ صفر و
fileInfo’ يمثل الدليل.
CreateEntry(كلمات مفتاحية Funcأرشيف أرشيف)
إنشاء إدخال واحد داخل الأرشيف.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
اسم الدخول .
streamProvider
Func
<؛
Stream
>
الطريقة التي توفر تدفق الدخول للدخول.
newEntrySettings
ArchiveEntrySettings
إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.
Returns
إدخال ZIP.
Examples
قم بتجميع الأرشيف مع إدخال مشفر.
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);
}
}
Remarks
هذه الطريقة متوفرة على .NET Framework 4.0 وما فوق و .NET Standard 2.0.
DeleteEntry(ArchiveEntry)
إزالة أول ظهور للمدخل المحدد من قائمة الدخول.
public Archive DeleteEntry(ArchiveEntry entry)
Parameters
entry
ArchiveEntry
إدخال إزالة من قائمة الإدخالات.
Returns
تم حذف الأرشيف مع الإدخال.
Examples
إليك كيفية إزالة جميع الإدخالات باستثناء الأخير:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
يتم إزالة الأرشيف.
DeleteEntry(إنت)
إزالة الإدخال من قائمة الإدخال بواسطة المؤشر.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
المؤشر القائم على الصفر من الدخول لإزالة.
Returns
تم حذف الأرشيف مع الإدخال.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
تم إزالة الأرشيف.
entryIndex’ is less than 0.-or-
entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
يمارس المهام المحددة في التطبيق المرتبطة بتفريغ أو إطلاق أو إعادة تدوير الموارد غير المعالجة.
public void Dispose()
Dispose(بول)
يمارس المهام المحددة في التطبيق المرتبطة بتفريغ أو إطلاق أو إعادة تدوير الموارد غير المعالجة.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
هل ينبغي تخصيص الموارد التي يتم إدارةها؟
ExtractToDirectory(الستار)
استخراج جميع الملفات في الأرشيف إلى الدليل المقدمة.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
الطريق إلى الدليل لوضع الملفات المستخرجة في.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
إذا لم يكن الدليل موجودًا ، فسيتم إنشاؤه.
Exceptions
destinationDirectory’ is null.
على سبيل المثال، على منصات ويندوز، يجب أن تكون المسارات أقل من 248 حرف، وأسماء الملفات يجب أن تكون أقل من 260 حرف.
لا يتمتع المكالمة بالترخيص المطلوب للوصول إلى الدليل الحالي.
إذا لم يكن الدليل موجودًا ، فإن المسار يحتوي على حرف العمود الفقري (:) الذي ليس جزءًا من علامة محرك الأقراص (“C:”).
destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).
المجلد المحدد بالطريق هو ملف. -أو- اسم الشبكة غير معروف.
لقد تم توفير كلمة مرور خاطئة. - أو - تم تدمير الأرشيف.
Save(أرشيف أرشيف أرشيف أرشيف)
حفظ الأرشيف إلى التدفق المقدم.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)
Parameters
outputStream
Stream
النطاق المستهدف
saveOptions
ArchiveSaveOptions
خيارات لتوفير الأرشيف.
Examples
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save(zipFile);
}
}
Remarks
يجب أن تكون مكتوبة.
Exceptions
outputStream’ is not writable.
يتم إزالة الأرشيف.
Save(أرشيف الوسم : ArchiveSaveOptions)
حفظ الأرشيف إلى ملف الوجهة المقدمة.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)
Parameters
destinationFileName
string
إذا كان اسم الملف المحدد يشير إلى ملف موجود ، فسيتم إعادة كتابته.
saveOptions
ArchiveSaveOptions
خيارات لتوفير الأرشيف.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}
Remarks
من الممكن حفظ الأرشيف في نفس المسار الذي تم تحميله من. ومع ذلك، هذا لا ينصح لأن هذا النهج يستخدم نسخ إلى ملف مؤقت.
Exceptions
destinationFileName’ is null.
لا يحصل المتصل على إذن الوصول المطلوب.
الوجه destinationFileName’ فارغ ، يحتوي فقط على مساحات بيضاء ، أو يحتوي على أحرف غير صحيحة.
يتم رفض الوصول إلى ملف destinationFileName’.
المحدد destinationFileName، اسم الملف، أو كلاهما يتجاوز الحد الأقصى المحدد من النظام.على سبيل المثال، على منصات ويندوز، يجب أن تكون المسارات أقل من 248 حرفا، وأسماء الملفات يجب أن تكون أقل من 260 حرفا.
ملف في destinationFileName’ يحتوي على عمود (:) في منتصف السلسلة.
لم يتم العثور على الملف.
المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.
الملف مفتوح بالفعل.
SaveSplit(الخيارات، SplitArchiveSaveOptions)
تخزين الأرشيف متعدد الحجم إلى دليل الوجهة المقدمة.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)
Parameters
destinationDirectory
string
المسار إلى الدليل حيث سيتم إنشاء أجزاء الأرشيف.
options
SplitArchiveSaveOptions
خيارات حفظ الأرشيف، بما في ذلك اسم الملف.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}
Remarks
هذه الطريقة تتكون من عدة () ملفات filename.z01, filename.z02, …, filename.z(n-1), filename.zip.
لا يمكن أن تجعل الأرشيف الحالي متعدد الحجم.
Exceptions
تم فتح هذا الأرشيف من المصدر الحالي.
يتم ضغط هذه الأرشيفات باستخدام طريقة XZ وتشفيرها.
destinationDirectory’ is null.
لا يتمتع المكالمة بالترخيص المطلوب للوصول إلى الدليل.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
المسار المحدد يتجاوز الحد الأقصى المحدد من النظام.
يتم إزالة الأرشيف.