Class RarArchiveEntry
Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)
يمثل ملفًا واحدًا داخل الأرشيف.
public abstract class RarArchiveEntry : IArchiveFileEntry
الوراثة
المشتقات
RarArchiveEntryEncrypted, RarArchiveEntryPlain
التنفيذ
الأعضاء الموروثة
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
الملاحظات
قم بتحويل مثيل Aspose.Zip.Rar.RarArchiveEntry إلى Aspose.Zip.Rar.RarArchiveEntryEncrypted لتحديد ما إذا كانت الإدخال مشفرة أم لا.
الخصائص
CompressedSize
يحصل على حجم الملف المضغوط.
public ulong CompressedSize { get; }
قيمة الخاصية
CreationTime
يحصل على تاريخ ووقت الإنشاء.
public DateTime CreationTime { get; }
قيمة الخاصية
IsDirectory
يحصل على قيمة تشير إلى ما إذا كانت الإدخال تمثل دليلًا.
public bool IsDirectory { get; }
قيمة الخاصية
LastAccessTime
يحصل على تاريخ ووقت آخر وصول.
public DateTime LastAccessTime { get; }
قيمة الخاصية
ModificationTime
يحصل على تاريخ ووقت آخر تعديل.
public DateTime ModificationTime { get; }
قيمة الخاصية
Name
يحصل على اسم الإدخال داخل الأرشيف.
public string Name { get; }
قيمة الخاصية
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
كلمة مرور اختيارية لفك التشفير.
العائدات
معلومات الملف للملف المكون.
الأمثلة
استخرج إدخالين من أرشيف rar.
using (FileStream rarFile = File.Open("archive.rar", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract("first.bin", "pass");
archive.Entries[1].Extract("second.bin", "pass");
}
}
الاستثناءات
path
هو null.
لا يمتلك المتصل الإذن المطلوب للوصول.
path
فارغ، يحتوي فقط على مسافات بيضاء، أو يحتوي على أحرف غير صالحة.
تم رفض الوصول إلى الملف path
.
المسار المحدد path
، اسم الملف، أو كلاهما يتجاوز الطول الأقصى المحدد من قبل النظام. على سبيل المثال، على الأنظمة المستندة إلى Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الملف في path
يحتوي على نقطتين (:) في منتصف السلسلة.
لم يتم العثور على الملف.
المسار المحدد غير صالح، مثل كونه على محرك غير مخصص.
الملف مفتوح بالفعل.
البيانات تالفة. - أو - فشل التحقق من CRC أو MAC للإدخال.
Extract(Stream, string)
يستخرج الإدخال إلى التدفق المقدم.
public void Extract(Stream destination, string password = null)
المعلمات
destination
Stream
تدفق الوجهة. يجب أن يكون قابلًا للكتابة.
password
string
كلمة مرور اختيارية لفك التشفير.
الأمثلة
استخرج إدخالًا من أرشيف rar بكلمة مرور.
using (FileStream rarFile = File.Open("archive.zip", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
الاستثناءات
فشل التحقق من CRC أو MAC للإدخال.
destination
لا يدعم الكتابة.
البيانات تالفة. - أو - فشل التحقق من CRC أو MAC للإدخال.
Open(string)
يفتح الإدخال للاستخراج ويوفر تدفقًا بمحتوى الإدخال الذي تم فك ضغطه.
public Stream Open(string password = null)
المعلمات
password
string
كلمة مرور اختيارية لفك التشفير. يمكن أيضًا تعيينها ضمن Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword.
العائدات
التدفق الذي يمثل محتويات الإدخال.
الأمثلة
الاستخدام:
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>
#### الملاحظات
<p>اقرأ من التدفق للحصول على المحتوى الأصلي للملف. انظر قسم الأمثلة.</p>
### <a id="Aspose_Zip_Rar_RarArchiveEntry_ExtractionProgressed"></a> ExtractionProgressed
يتم رفعه عندما يتم استخراج جزء من التدفق الخام.
```csharp
public event EventHandler<progresseventargs> ExtractionProgressed
نوع الحدث
EventHandler<ProgressEventArgs>
الأمثلة
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };
الملاحظات
مرسل الحدث هو مثيل Aspose.Zip.Rar.RarArchiveEntry.