Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
แสดงถึงไฟล์เดียวภายใน 7z archive.
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
รับชื่อของเอนทรีภายใน archive
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
ที่ระบุ ชื่อไฟล์ หรือทั้งคู่เกินความยาวสูงสุดที่กำหนดโดยระบบ สำหรับแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร
ไฟล์ที่ path
มีโคลอน (:) อยู่กลางสตริง
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);
}
ข้อยกเว้น
destination
ไม่รองรับการเขียน
Archive ยังไม่เปิดสำหรับการแยก - หรือ - เอนทรีนี้เป็นไดเรกทอรี
ข้อมูลผิดพลาดภายในเอนทรี
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)
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>
ตัวอย่าง
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
ข้อคิดเห็น
ผู้ส่งเหตุการณ์คืออินสแตนซ์ของ Aspose.Zip.SevenZip.SevenZipArchiveEntry
ไม่เรียกใช้ในโหมดหลายเธรดสำหรับ LZMA2 entries