Class RarArchiveEntry
命名空间: Aspose.Zip.Rar
程序集: 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; }
属性值
CreationTime
获取创建日期和时间。
public DateTime CreationTime { get; }
属性值
IsDirectory
获取一个值,指示条目是否表示目录。
public bool IsDirectory { get; }
属性值
LastAccessTime
获取最后访问日期和时间。
public DateTime LastAccessTime { get; }
属性值
ModificationTime
获取最后修改日期和时间。
public DateTime ModificationTime { get; }
属性值
Name
获取归档中条目的名称。
public string Name { get; }
属性值
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
可选的解密密码。
返回
组成文件的信息。
示例
提取 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 方法:
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 实例。