Class ArchiveEntry
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
Представляє собою один файл в архіві.
public abstract class ArchiveEntry : IArchiveFileEntry
Спадкування
Наслідок
ArchiveEntryEncrypted, ArchiveEntryPlain
Реалізує
Спадковані учасники
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Примітки
Перетворіть екземпляр Aspose.Zip.ArchiveEntry на Aspose.Zip.ArchiveEntryEncrypted, щоб визначити, чи є запис зашифрованим чи ні.
Конструктори
ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)
Ініціалізує новий екземпляр класу Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)
Параметри
name
string
Ім’я запису.
compressionSettings
CompressionSettings
Налаштування для стиснення або розпаковування.
sourceProvider
Func<Stream>
Метод, що повертає потік з даними запису, які потрібно стиснути.
fileAttributes
FileAttributes
Атрибути з файлової системи.
ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)
Ініціалізує новий екземпляр класу Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Параметри
name
string
Ім’я запису.
compressionSettings
CompressionSettings
Налаштування для стиснення або розпаковування.
source
Stream
Потік з даними запису, які потрібно стиснути або розпакувати.
fileAttributes
FileAttributes
Атрибути з файлової системи.
fileInfo
FileSystemInfo
Інформація про файл або директорію, на основі якої створено запис.
Властивості
Comment
Отримує коментар до запису в архіві.
public string Comment { get; protected set; }
Значення властивості
CompressedSize
Отримує розмір стиснутого файлу.
public ulong CompressedSize { get; }
Значення властивості
CompressionSettings
Отримує налаштування для стиснення або розпаковування.
public CompressionSettings CompressionSettings { get; }
Значення властивості
DataSource
Джерело для запису, якщо запис було додано до архіву, а не вилучено.
public Stream DataSource { get; }
Значення властивості
Примітки
Перед присвоєнням джерело є null. Це джерело може бути присвоєно в методі Archive.Save
у деяких випадках.
FileAttributes
Отримує атрибути файлу з хост-системи.
protected FileAttributes FileAttributes { get; }
Значення властивості
IsDirectory
Отримує значення, яке вказує, чи представляє запис директорію.
public bool IsDirectory { get; }
Значення властивості
ModificationTime
Отримує або задає дату та час останнього модифікації.
public DateTime ModificationTime { get; set; }
Значення властивості
Name
Отримує ім’я запису в архіві.
public string Name { get; protected set; }
Значення властивості
UncompressedSize
Отримує розмір оригінального файлу.
public ulong UncompressedSize { get; }
Значення властивості
Методи
Extract(string, string)
Витягує запис на файлову систему за вказаним шляхом.
public FileInfo Extract(string path, string password = null)
Параметри
path
string
Шлях до файлу призначення. Якщо файл вже існує, він буде перезаписаний.
password
string
Необов’язковий пароль для розшифровування.
Повертає
Інформація про складений файл.
Приклади
Витягніть два записи з zip-архіву, кожен з власним паролем
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract("first.bin", "first_pass");
archive.Entries[1].Extract("second.bin", "second_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
Необов’язковий пароль для розшифровування.
Приклади
Витягніть запис з zip-архіву з паролем.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Виключення
Дані пошкоджені. -або- Перевірка CRC або MAC не вдалася для запису.
Джерело пошкоджене або недоступне для читання.
destination
не підтримує запис.
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>
#### Примітки
<p>Читання з потоку для отримання оригінального вмісту файлу. Див. розділ прикладів.</p>
#### Виключення
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Архів у неправильному стані.
### <a id="Aspose_Zip_ArchiveEntry_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.ArchiveEntry.
ExtractionProgressed
Виникає, коли частина сирого потоку витягується.
public event EventHandler<progresseventargs> ExtractionProgressed
Тип події
EventHandler<ProgressEventArgs>
Приклади
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };
Примітки
Відправник події є екземпляром Aspose.Zip.ArchiveEntry.