Class RarArchiveEntry

Class RarArchiveEntry

Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)

แทนที่ไฟล์เดียวภายในไฟล์บีบอัด

public abstract class RarArchiveEntry : IArchiveFileEntry

การสืบทอด

objectRarArchiveEntry

ที่สืบทอด

RarArchiveEntryEncrypted, RarArchiveEntryPlain

การใช้งาน

IArchiveFileEntry

สมาชิกที่สืบทอด

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

ulong

CreationTime

ได้รับวันที่และเวลาที่สร้าง

public DateTime CreationTime { get; }

ค่า Property

DateTime

IsDirectory

ได้รับค่าที่บ่งบอกว่าเอนทรีแทนที่ไดเรกทอรีหรือไม่

public bool IsDirectory { get; }

ค่า Property

bool

LastAccessTime

ได้รับวันที่และเวลาที่เข้าถึงล่าสุด

public DateTime LastAccessTime { get; }

ค่า Property

DateTime

ModificationTime

ได้รับวันที่และเวลาที่แก้ไขล่าสุด

public DateTime ModificationTime { get; }

ค่า Property

DateTime

Name

ได้รับชื่อของเอนทรีภายในไฟล์บีบอัด

public string Name { get; }

ค่า Property

string

Source

ได้รับสตรีมแหล่งข้อมูลสำหรับเอนทรี

protected Stream Source { get; set; }

ค่า Property

Stream

UncompressedSize

ได้รับขนาดของไฟล์ต้นฉบับ

public ulong UncompressedSize { get; }

ค่า Property

ulong

วิธีการ

Extract(string, string)

แยกเอนทรีไปยังระบบไฟล์ตามเส้นทางที่ให้ไว้

public FileInfo Extract(string path, string password = null)

พารามิเตอร์

path string

เส้นทางไปยังไฟล์ปลายทาง หากไฟล์มีอยู่แล้ว จะถูกเขียนทับ

password string

รหัสผ่านสำหรับการถอดรหัส (ไม่บังคับ)

คืนค่า

FileInfo

ข้อมูลไฟล์ของไฟล์ที่ประกอบขึ้น

ตัวอย่าง

แยกเอนทรีสองรายการจากไฟล์บีบอัด 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");
    }
}

ข้อยกเว้น

ArgumentNullException

path เป็น null

SecurityException

ผู้เรียกไม่มีสิทธิ์ที่จำเป็นในการเข้าถึง

ArgumentException

path ว่างเปล่า มีเพียงช่องว่าง หรือมีอักขระที่ไม่ถูกต้อง

UnauthorizedAccessException

การเข้าถึงไฟล์ path ถูกปฏิเสธ

PathTooLongException

path ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ เช่น บนแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร

NotSupportedException

ไฟล์ที่ path มีโคลอน (:) อยู่กลางสตริง

FileNotFoundException

ไม่พบไฟล์

DirectoryNotFoundException

เส้นทางที่ระบุไม่ถูกต้อง เช่น อยู่บนดิสก์ที่ไม่ได้แมพ

IOException

ไฟล์เปิดอยู่แล้ว

InvalidDataException

ข้อมูลเสียหาย - หรือ - การตรวจสอบ 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$");
    }
}

ข้อยกเว้น

InvalidDataException

การตรวจสอบ CRC หรือ MAC ล้มเหลวสำหรับเอนทรี

ArgumentException

destination ไม่รองรับการเขียน

InvalidDataException

ข้อมูลเสียหาย - หรือ - การตรวจสอบ CRC หรือ MAC ล้มเหลวสำหรับเอนทรี

Open(string)

เปิดเอนทรีสำหรับการแยกและให้สตรีมที่มีเนื้อหาของเอนทรีที่ถูกถอดรหัส

public Stream Open(string password = null)

พารามิเตอร์

password string

รหัสผ่านสำหรับการถอดรหัส (ไม่บังคับ) สามารถตั้งค่าได้ภายใน Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword

คืนค่า

Stream

สตรีมที่แทนเนื้อหาของเอนทรี

ตัวอย่าง

การใช้งาน: 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&gt;

ตัวอย่าง

archive.Entries[0].ExtractionProgressed += (s, e) =&gt; { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };

หมายเหตุ

ผู้ส่งเหตุการณ์คืออินสแตนซ์ของ Aspose.Zip.Rar.RarArchiveEntry

 แบบไทย