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; }
ค่า Property
CreationTime
ได้รับวันที่และเวลาที่สร้าง
public DateTime CreationTime { get; }
ค่า Property
IsDirectory
ได้รับค่าที่บ่งบอกว่าเอนทรีแทนที่ไดเรกทอรีหรือไม่
public bool IsDirectory { get; }
ค่า Property
LastAccessTime
ได้รับวันที่และเวลาที่เข้าถึงล่าสุด
public DateTime LastAccessTime { get; }
ค่า Property
ModificationTime
ได้รับวันที่และเวลาที่แก้ไขล่าสุด
public DateTime ModificationTime { get; }
ค่า Property
Name
ได้รับชื่อของเอนทรีภายในไฟล์บีบอัด
public string Name { get; }
ค่า Property
Source
ได้รับสตรีมแหล่งข้อมูลสำหรับเอนทรี
protected Stream Source { get; set; }
ค่า Property
UncompressedSize
ได้รับขนาดของไฟล์ต้นฉบับ
public ulong UncompressedSize { get; }
ค่า Property
วิธีการ
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 method:
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