Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
نماینده یک فایل واحد درون آرشیو 7z است.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
وراثت
مشتقات
SevenZipArchiveEntryEncrypted، SevenZipArchiveEntryPlain
پیادهسازیها
اعضای به ارث برده شده
object.GetType()، object.MemberwiseClone()، object.ToString()، object.Equals(object?)، object.Equals(object?, object?)، object.ReferenceEquals(object?, object?)، object.GetHashCode()
توضیحات
یک نمونه از Aspose.Zip.SevenZip.SevenZipArchiveEntry را به Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted تبدیل کنید تا تعیین کنید که آیا ورودی رمزگذاری شده است یا خیر.
سازندهها
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
یک نمونه جدید از کلاس Aspose.Zip.SevenZip.SevenZipArchiveEntry را مقداردهی اولیه میکند.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
پارامترها
parent
SevenZipArchive
name
string
نام ورودی.
compressionSettings
SevenZipCompressionSettings
تنظیمات برای فشردهسازی یا استخراج.
source
Stream
جریان با دادههای ورودی که باید فشرده یا استخراج شود.
fileAttributes
FileAttributes
ویژگیها از سیستم فایل.
fileInfo
FileSystemInfo
اطلاعات فایل یا دایرکتوری که ورودی بر اساس آن است.
استثناها
name
null یا خالی است.
ویژگیها
CompressedSize
اندازه فایل فشرده شده را دریافت میکند.
public ulong CompressedSize { get; }
مقدار ویژگی
CompressionSettings
تنظیمات فشردهسازی یا استخراج را دریافت میکند.
public SevenZipCompressionSettings CompressionSettings { get; }
مقدار ویژگی
FileAttributes
ویژگیهای فایل را از سیستم میزبان دریافت میکند.
protected FileAttributes FileAttributes { get; }
مقدار ویژگی
IsDirectory
مقداری را دریافت میکند که نشان میدهد آیا ورودی نمایانگر دایرکتوری است یا خیر.
public bool IsDirectory { get; }
مقدار ویژگی
ModificationTime
آخرین تاریخ و زمان تغییر را دریافت میکند.
public DateTime ModificationTime { get; }
مقدار ویژگی
Name
نام ورودی درون آرشیو را دریافت میکند.
public string Name { get; protected set; }
مقدار ویژگی
Source
جریان منبع داده برای ورودی را دریافت میکند.
protected Stream Source { get; set; }
مقدار ویژگی
UncompressedSize
اندازه فایل اصلی را دریافت میکند.
public ulong UncompressedSize { get; }
مقدار ویژگی
متدها
Extract(string, string)
ورودی را به سیستم فایل با مسیر ارائه شده استخراج میکند.
public FileInfo Extract(string path, string password = null)
پارامترها
path
string
مسیر به فایل مقصد. اگر فایل قبلاً وجود داشته باشد، بازنویسی خواهد شد.
password
string
رمز عبور اختیاری برای رمزگشایی.
بازگشت
اطلاعات فایل فایل ترکیبی.
مثالها
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
استثناها
path
null است.
فراخوانیکننده مجوز لازم برای دسترسی را ندارد.
path
خالی است، فقط شامل فضاهای خالی است، یا شامل کاراکترهای نامعتبر است.
دسترسی به فایل path
ممنوع است.
path
مشخص شده، نام فایل، یا هر دو از حداکثر طول تعریف شده توسط سیستم تجاوز کردهاند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 248 کاراکتر باشند و نام فایلها باید کمتر از 260 کاراکتر باشند.
فایل در path
شامل دو نقطه (:) در وسط رشته است.
آرشیو خراب است.
Extract(Stream, string)
ورودی را به جریانی که ارائه شده است استخراج میکند.
public void Extract(Stream destination, string password = null)
پارامترها
destination
Stream
جریان مقصد. باید قابل نوشتن باشد.
password
string
رمز عبور اختیاری برای رمزگشایی.
مثالها
یک ورودی از آرشیو zip را با رمز عبور استخراج کنید.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
استثناها
destination
از نوشتن پشتیبانی نمیکند.
آرشیو برای استخراج باز نشده است. - یا - این ورودی یک دایرکتوری است.
دادههای نادرست درون ورودی.
FinalizeCompressedData(Stream, byte[])
هر هدر که پس از دادههای فشرده وجود دارد را به جریان خروجی بنویسید.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
پارامترها
outputStream
Stream
جریان خروجی برای ورودی.
encoderProperties
byte[]
ویژگیهای فشردهساز.
بازگشت
تعداد بایتهای “فنی” که پس از بلوک دادههای معنادار ورودی اضافه شدهاند.
GetDestinationStream(Stream)
جریان مقصد برای ورودی، ممکن است تزئین شده باشد.
protected abstract Stream GetDestinationStream(Stream outputStream)
پارامترها
outputStream
Stream
جریان خروجی برای ورودی.
بازگشت
جریان مقصد برای فشردهسازی ورودی.
Open(string)
ورودی را برای استخراج باز کرده و جریانی با محتوای ورودی ارائه میدهد.
public Stream Open(string password = null)
پارامترها
password
string
رمز عبور اختیاری برای رمزگشایی.
بازگشت
جریانی که محتوای ورودی را نمایان میکند.
مثالها
استفاده:
Stream decompressed = entry.Open();
.NET 4.0 و بالاتر - از متد Stream.CopyTo استفاده کنید:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 و قبل از آن - بایتها را به صورت دستی کپی کنید:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### توضیحات
از جریان بخوانید تا محتوای اصلی فایل را دریافت کنید. بخش مثالها را ببینید.
#### استثناها
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
آرشیو برای استخراج باز نشده است. - یا - این ورودی یک دایرکتوری است.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
دادههای نادرست درون ورودی.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
زمانی که بخشی از جریان خام فشرده شد، فراخوانی میشود.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
نوع رویداد
EventHandler<ProgressEventArgs>
مثالها
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
توضیحات
فرستنده رویداد یک نمونه از Aspose.Zip.SevenZip.SevenZipArchiveEntry است.
در حالت چند رشتهای برای ورودیهای LZMA2 فراخوانی نمیشود.