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(بایگانی برچسب ها: ArchiveLoadOptions, ArchiveEntrySettings)
یک مثال جدید از کلاس 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" خالی است، فقط حاوی فضاهای سفید است یا حاوی کاراکترهای نادرست است.
دسترسی به فایل path" رد می شود.
برای مثال، در پلتفرم های مبتنی بر ویندوز، مسیرها باید کمتر از 248 کاراکتر باشد و نام فایل ها باید کمتر از 260 کاراکتر باشد.
فایل در path" حاوی یک ستون (:) در وسط ردیف است.
این فایل یافت نشد.
مسیر مشخص شده نادرست است، به عنوان مثال در یک درایو بدون نقشه.
فایل در حال حاضر باز است.
این فایل خراب شده است.
Archive(String، String[ ], آرشیو گزینه ها)
یک مثال جدید از کلاس Aspose.Zip.Archive را از آرشیو zip چند حجم آغاز می کند و یک لیست ورودی را می سازد که می تواند از آرشیو استخراج شود.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
مسیر به بخش نهایی آرشیو چند حجم با دایرکتوری مرکزی.
به طور معمول این بخش دارای *.zip افزونه و کوچکتر از دیگران است.
segmentsInOrder
string
[ ]
مسیرها به هر بخش اما آخرین از چند حجم آرشیو zip به ترتیب.
به طور معمول آنها به نام 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
دستورالعمل برای فشرده سازی
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(بایگانی برچسب ها: bool)
به آرشیو، تمام فایل ها و دایرکتوری ها را به صورت تکراری در دامنه داده اضافه کنید.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
دستورالعمل برای فشرده سازی
includeRootDirectory
bool
نشان می دهد که آیا باید خود دایرکتوری ریشه را شامل شود یا نه.
Returns
آرشیو با ورودی های جمع آوری شده
Examples
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)
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" خالی است، فقط حاوی فضاهای سفید است یا حاوی کاراکترهای نادرست است.
دسترسی به فایل path" رد می شود.
برای مثال، در پلتفرم های مبتنی بر ویندوز، مسیرها باید کمتر از 248 کاراکتر باشد و نام فایل ها باید کمتر از 260 کاراکتر باشد.
فایل در path" حاوی یک ستون (:) در وسط ردیف است.
CreateEntry(جریان، جریان، ArchiveEntrySettings)
یک ورودی واحد در آرشیو ایجاد کنید.
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, ArchiveEntrySettings)
یک ورودی واحد در آرشیو ایجاد کنید.
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(int)
ورودی را از لیست ورودی با شاخص حذف کنید.
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(String)
تمام فایل ها را در آرشیو به دایرکتوری ارائه شده استخراج کنید.
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(بایگانی برچسب ها: ArchiveSaveOptions)
ذخیره آرشیو به جریان ارائه شده.
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’ رد می شود.
برای مثال، در پلتفرم های مبتنی بر ویندوز، مسیرها باید کمتر از 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 |.
مسیر تعیین شده از حداکثر طول سیستم تعیین شده فراتر می رود.
این آرشیو حذف شده است.