Class XarFileEntry
Namespace: Aspose.Zip.Xar
Assembly: Aspose.Zip.dll (25.1.0)
Представляет запись файла внутри архива xar.
public sealed class XarFileEntry : XarEntry, IArchiveFileEntry
Наследование
object ← XarEntry ← XarFileEntry
Реализует
Унаследованные члены
XarEntry.ToString(), XarEntry.Name, XarEntry.FullPath, XarEntry.IsDirectory, XarEntry.Parent, XarEntry.CreationTime, XarEntry.LastAccessTime, XarEntry.LastWriteTime, object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Свойства
Длина
Получает длину записи в байтах.
public long Length { get; }
Значение свойства
Методы
Извлечь(string)
Извлекает запись в файловую систему по указанному пути.
public FileInfo Extract(string path)
Параметры
path
string
Путь к целевому файлу. Если файл уже существует, он будет перезаписан.
Возвращает
Информация о файле.
Примеры
using (var archive = new XarArchive("archive.xar"))
{
((XarFileEntry)archive.Entries[0]).Extract("data.bin");
}
Исключения
path
равно null.
У вызывающего нет необходимых прав доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов — короче 260 символов.
Файл по адресу path
содержит двоеточие (:) в середине строки.
Архив поврежден.
Извлечь(Stream)
Извлекает запись в предоставленный поток.
public void Extract(Stream destination)
Параметры
destination
Stream
Целевой поток. Должен быть записываемым.
Примеры
Извлечение записи из архива xar.
using (var archive = new XarArchive("archive.xar"))
{
((XarFileEntry)archive.Entries[0]).Extract(httpResponseStream);
}
Исключения
destination
не поддерживает запись.
Архив поврежден.
Открыть()
Открывает запись для извлечения и предоставляет поток с содержимым записи.
public Stream Open()
Возвращает
Поток, представляющий содержимое записи.
Примеры
Использование:
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>
#### Примечания
Чтение из потока для получения оригинального содержимого файла. См. раздел примеров.
### <a id="Aspose_Zip_Xar_XarFileEntry_CompressionProgressed"></a> CompressionProgressed
Вызывается, когда часть необработанного потока сжата.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Тип события
EventHandler<ProgressEventArgs>
Примеры
archive.Entries.First().CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Примечания
Отправитель события - это экземпляр Aspose.Zip.Xar.XarFileEntry.