Class RarArchiveEntry
Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)
Đại diện cho một tệp đơn trong kho lưu trữ.
public abstract class RarArchiveEntry : IArchiveFileEntry
Kế thừa
Kế thừa
RarArchiveEntryEncrypted, RarArchiveEntryPlain
Triển khai
Thành viên kế thừa
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Nhận xét
Chuyển đổi một thể hiện của Aspose.Zip.Rar.RarArchiveEntry thành Aspose.Zip.Rar.RarArchiveEntryEncrypted để xác định xem mục có được mã hóa hay không.
Thuộc tính
CompressedSize
Lấy kích thước của tệp nén.
public ulong CompressedSize { get; }
Giá trị thuộc tính
CreationTime
Lấy ngày và giờ tạo.
public DateTime CreationTime { get; }
Giá trị thuộc tính
IsDirectory
Lấy giá trị chỉ định xem mục có đại diện cho thư mục hay không.
public bool IsDirectory { get; }
Giá trị thuộc tính
LastAccessTime
Lấy ngày và giờ truy cập lần cuối.
public DateTime LastAccessTime { get; }
Giá trị thuộc tính
ModificationTime
Lấy ngày và giờ sửa đổi lần cuối.
public DateTime ModificationTime { get; }
Giá trị thuộc tính
Name
Lấy tên của mục trong kho lưu trữ.
public string Name { get; }
Giá trị thuộc tính
Source
Lấy luồng dữ liệu nguồn cho mục.
protected Stream Source { get; set; }
Giá trị thuộc tính
UncompressedSize
Lấy kích thước của tệp gốc.
public ulong UncompressedSize { get; }
Giá trị thuộc tính
Phương thức
Extract(string, string)
Giải nén mục vào hệ thống tệp theo đường dẫn đã cung cấp.
public FileInfo Extract(string path, string password = null)
Tham số
path
string
Đường dẫn đến tệp đích. Nếu tệp đã tồn tại, nó sẽ bị ghi đè.
password
string
Mật khẩu tùy chọn cho việc giải mã.
Trả về
Thông tin tệp của tệp đã tạo.
Ví dụ
Giải nén hai mục của kho lưu trữ 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");
}
}
Ngoại lệ
path
là null.
Người gọi không có quyền truy cập cần thiết.
path
là rỗng, chỉ chứa khoảng trắng, hoặc chứa ký tự không hợp lệ.
Quyền truy cập vào tệp path
bị từ chối.
path
đã chỉ định, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng dựa trên Windows, đường dẫn phải ngắn hơn 248 ký tự, và tên tệp phải ngắn hơn 260 ký tự.
Tệp tại path
chứa một dấu hai chấm (:) ở giữa chuỗi.
Tệp không được tìm thấy.
Đường dẫn đã chỉ định không hợp lệ, chẳng hạn như nằm trên một ổ đĩa không được ánh xạ.
Tệp đã được mở.
Dữ liệu bị hỏng. -hoặc- Xác minh CRC hoặc MAC không thành công cho mục.
Extract(Stream, string)
Giải nén mục vào luồng đã cung cấp.
public void Extract(Stream destination, string password = null)
Tham số
destination
Stream
Luồng đích. Phải có thể ghi.
password
string
Mật khẩu tùy chọn cho việc giải mã.
Ví dụ
Giải nén một mục của kho lưu trữ rar với mật khẩu.
using (FileStream rarFile = File.Open("archive.zip", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Ngoại lệ
Xác minh CRC hoặc MAC không thành công cho mục.
destination
không hỗ trợ ghi.
Dữ liệu bị hỏng. -hoặc- Xác minh CRC hoặc MAC không thành công cho mục.
Open(string)
Mở mục để giải nén và cung cấp một luồng với nội dung mục đã giải nén.
public Stream Open(string password = null)
Tham số
password
string
Mật khẩu tùy chọn cho việc giải mã. Nó cũng có thể được thiết lập trong Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword.
Trả về
Luồng đại diện cho nội dung của mục.
Ví dụ
Sử dụng:
Stream decompressed = entry.Open();
.NET 4.0 và cao hơn - sử dụng phương thức Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 và trước - sao chép byte thủ công:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Nhận xét
<p>Đọc từ luồng để lấy nội dung gốc của tệp. Xem phần ví dụ.</p>
### <a id="Aspose_Zip_Rar_RarArchiveEntry_ExtractionProgressed"></a> ExtractionProgressed
Kích hoạt khi một phần của luồng thô được giải nén.
```csharp
public event EventHandler<progresseventargs> ExtractionProgressed
Loại sự kiện
EventHandler<ProgressEventArgs>
Ví dụ
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };
Nhận xét
Người gửi sự kiện là một thể hiện của Aspose.Zip.Rar.RarArchiveEntry.