Class SevenZipArchiveEntry

Class SevenZipArchiveEntry

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

แสดงถึงไฟล์เดียวภายใน 7z archive.

public abstract class SevenZipArchiveEntry : IArchiveFileEntry

การสืบทอด

objectSevenZipArchiveEntry

ที่ได้สืบทอด

SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain

การนำไปใช้

IArchiveFileEntry

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

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

ข้อมูลไฟล์หรือไดเรกทอรีที่เอนทรีอิงตาม

ข้อยกเว้น

ArgumentException

name เป็น null หรือว่างเปล่า

คุณสมบัติ

CompressedSize

รับขนาดของไฟล์ที่บีบอัด

public ulong CompressedSize { get; }

ค่าคุณสมบัติ

ulong

CompressionSettings

รับการตั้งค่าสำหรับการบีบอัดหรือการคลายบีบอัด

public SevenZipCompressionSettings CompressionSettings { get; }

ค่าคุณสมบัติ

SevenZipCompressionSettings

FileAttributes

รับคุณสมบัติไฟล์จากระบบโฮสต์

protected FileAttributes FileAttributes { get; }

ค่าคุณสมบัติ

FileAttributes

IsDirectory

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

public bool IsDirectory { get; }

ค่าคุณสมบัติ

bool

ModificationTime

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

public DateTime ModificationTime { get; }

ค่าคุณสมบัติ

DateTime

Name

รับชื่อของเอนทรีภายใน archive

public string Name { get; protected set; }

ค่าคุณสมบัติ

string

Source

รับข้อมูลสตรีมต้นทางสำหรับเอนทรี

protected Stream Source { get; set; }

ค่าคุณสมบัติ

Stream

UncompressedSize

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

public ulong UncompressedSize { get; }

ค่าคุณสมบัติ

ulong

วิธีการ

Extract(string, string)

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

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

พารามิเตอร์

path string

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

password string

รหัสผ่านสำหรับการถอดรหัส (ถ้ามี)

คืนค่า

FileInfo

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

ตัวอย่าง

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract("data.bin");
}

ข้อยกเว้น

ArgumentNullException

path เป็น null

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

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

InvalidDataException

Archive เสียหาย

Extract(Stream, string)

แยกเอนทรีไปยังสตรีมที่ให้ไว้

public void Extract(Stream destination, string password = null)

พารามิเตอร์

destination Stream

สตรีมปลายทาง ต้องสามารถเขียนได้

password string

รหัสผ่านสำหรับการถอดรหัส (ถ้ามี)

ตัวอย่าง

แยกเอนทรีของ zip archive ด้วยรหัสผ่าน

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract(httpResponseStream);
}

ข้อยกเว้น

ArgumentException

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

InvalidOperationException

Archive ยังไม่เปิดสำหรับการแยก - หรือ - เอนทรีนี้เป็นไดเรกทอรี

InvalidDataException

ข้อมูลผิดพลาดภายในเอนทรี

FinalizeCompressedData(Stream, byte[])

เขียนไปยังสตรีมเอาต์พุตใด ๆ ที่ตามมาหลังจากข้อมูลที่บีบอัด

protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)

พารามิเตอร์

outputStream Stream

สตรีมเอาต์พุตสำหรับเอนทรี

encoderProperties byte[]

คุณสมบัติของเครื่องบีบอัด

คืนค่า

int

จำนวนไบต์ “เทคนิค” ที่ถูกเพิ่มหลังจากบล็อกข้อมูลที่สำคัญของเอนทรี

GetDestinationStream(Stream)

สตรีมปลายทางสำหรับเอนทรี อาจมีการตกแต่ง

protected abstract Stream GetDestinationStream(Stream outputStream)

พารามิเตอร์

outputStream Stream

สตรีมเอาต์พุตสำหรับเอนทรี

คืนค่า

Stream

สตรีมปลายทางสำหรับการบีบอัดเอนทรี

Open(string)

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

public Stream Open(string password = null)

พารามิเตอร์

password string

รหัสผ่านสำหรับการถอดรหัส (ถ้ามี)

คืนค่า

Stream

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

ตัวอย่าง

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

Archive ยังไม่เปิดสำหรับการแยก - หรือ - เอนทรีนี้เป็นไดเรกทอรี

 [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&gt;

ตัวอย่าง

archive.Entries[0].CompressionProgressed += (s, e) =&gt; { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };

ข้อคิดเห็น

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

ไม่เรียกใช้ในโหมดหลายเธรดสำหรับ LZMA2 entries

 แบบไทย