Class ArchiveEntry

Class ArchiveEntry

Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)

Reprezentuje pojedynczy plik w archiwum.

public abstract class ArchiveEntry : IArchiveFileEntry

Dziedziczenie

objectArchiveEntry

Pochodne

ArchiveEntryEncrypted, ArchiveEntryPlain

Implementuje

IArchiveFileEntry

Członkowie odziedziczeni

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Uwagi

Rzucenie instancji Aspose.Zip.ArchiveEntry na Aspose.Zip.ArchiveEntryEncrypted w celu określenia, czy wpis jest zaszyfrowany, czy nie.

Konstruktory

ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)

Inicjalizuje nową instancję klasy Aspose.Zip.ArchiveEntry.

protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)

Parametry

name string

Nazwa wpisu.

compressionSettings CompressionSettings

Ustawienia dla kompresji lub dekompresji.

sourceProvider Func<Stream&gt;

Metoda zwracająca strumień z danymi wpisu do skompresowania.

fileAttributes FileAttributes

Atrybuty z systemu plików.

ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)

Inicjalizuje nową instancję klasy Aspose.Zip.ArchiveEntry.

protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)

Parametry

name string

Nazwa wpisu.

compressionSettings CompressionSettings

Ustawienia dla kompresji lub dekompresji.

source Stream

Strumień z danymi wpisu do skompresowania lub dekompresowania.

fileAttributes FileAttributes

Atrybuty z systemu plików.

fileInfo FileSystemInfo

Informacje o pliku lub katalogu, na podstawie których oparty jest wpis.

Właściwości

Comment

Pobiera komentarz wpisu w archiwum.

public string Comment { get; protected set; }

Wartość właściwości

string

CompressedSize

Pobiera rozmiar skompresowanego pliku.

public ulong CompressedSize { get; }

Wartość właściwości

ulong

CompressionSettings

Pobiera ustawienia dla kompresji lub dekompresji.

public CompressionSettings CompressionSettings { get; }

Wartość właściwości

CompressionSettings

DataSource

Źródło dla wpisu, jeśli został dodany do archiwum, a nie wyodrębniony.

public Stream DataSource { get; }

Wartość właściwości

Stream

Uwagi

Przed przypisaniem źródło jest null. To źródło może być przypisane w metodzie Archive.Save w niektórych przypadkach.

FileAttributes

Pobiera atrybuty pliku z systemu hosta.

protected FileAttributes FileAttributes { get; }

Wartość właściwości

FileAttributes

IsDirectory

Pobiera wartość wskazującą, czy wpis reprezentuje katalog.

public bool IsDirectory { get; }

Wartość właściwości

bool

ModificationTime

Pobiera lub ustawia datę i czas ostatniej modyfikacji.

public DateTime ModificationTime { get; set; }

Wartość właściwości

DateTime

Name

Pobiera nazwę wpisu w archiwum.

public string Name { get; protected set; }

Wartość właściwości

string

UncompressedSize

Pobiera rozmiar oryginalnego pliku.

public ulong UncompressedSize { get; }

Wartość właściwości

ulong

Metody

Extract(string, string)

Wyodrębnia wpis do systemu plików według podanej ścieżki.

public FileInfo Extract(string path, string password = null)

Parametry

path string

Ścieżka do pliku docelowego. Jeśli plik już istnieje, zostanie nadpisany.

password string

Opcjonalne hasło do deszyfrowania.

Zwraca

FileInfo

Informacje o pliku skomponowanym.

Przykłady

Wyodrębnij dwa wpisy z archiwum zip, każdy z własnym hasłem

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");
    }
}

Wyjątki

ArgumentNullException

path jest null.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu.

ArgumentException

path jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.

UnauthorizedAccessException

Dostęp do pliku path jest zabroniony.

PathTooLongException

Podana path, nazwa pliku lub obie przekraczają maksymalną długość określoną przez system. Na przykład, na platformach opartych na Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

NotSupportedException

Plik w path zawiera dwukropek (:) w środku ciągu.

FileNotFoundException

Plik nie został znaleziony.

DirectoryNotFoundException

Podana ścieżka jest nieprawidłowa, na przykład znajduje się na nieprzypisanym dysku.

IOException

Plik jest już otwarty.

InvalidDataException

Dane są uszkodzone. -lub- Weryfikacja CRC lub MAC nie powiodła się dla wpisu.

Extract(Stream, string)

Wyodrębnia wpis do podanego strumienia.

public void Extract(Stream destination, string password = null)

Parametry

destination Stream

Docelowy strumień. Musi być zapisywalny.

password string

Opcjonalne hasło do deszyfrowania.

Przykłady

Wyodrębnij wpis z archiwum zip z hasłem.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
    using (Archive archive = new Archive(zipFile))
    {
        archive.Entries[0].Extract(httpResponseStream, "p@s$");
    }
}

Wyjątki

InvalidDataException

Dane są uszkodzone. -lub- Weryfikacja CRC lub MAC nie powiodła się dla wpisu.

IOException

Źródło jest uszkodzone lub nieczytelne.

ArgumentException

destination nie obsługuje zapisu.

Open(string)

Otwiera wpis do wyodrębnienia i udostępnia strumień z dekompresowaną zawartością wpisu.

public Stream Open(string password = null)

Parametry

password string

Opcjonalne hasło do deszyfrowania.

Zwraca

Stream

Strumień reprezentujący zawartość wpisu.

Przykłady

Użycie: Stream decompressed = entry.Open();

.NET 4.0 i wyżej - użyj metody Stream.CopyTo: decompressed.CopyTo(httpResponse.OutputStream)

.NET 3.5 i wcześniejsze - kopiuj bajty ręcznie:

byte[] buffer = new byte[8192];
int bytesRead;
while (0 &lt; (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
 fileStream.Write(buffer, 0, bytesRead);
```</p>

#### Uwagi

<p>Odczytaj ze strumienia, aby uzyskać oryginalną zawartość pliku. Zobacz sekcję przykładów.</p>

#### Wyjątki

[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)

Archiwum jest w niepoprawnym stanie.

### <a id="Aspose_Zip_ArchiveEntry_CompressionProgressed"></a> CompressionProgressed

Wysyła zdarzenie, gdy część surowego strumienia została skompresowana.

```csharp
public event EventHandler<progresseventargs> CompressionProgressed

Typ zdarzenia

EventHandler<ProgressEventArgs&gt;

Przykłady

archive.Entries[0].CompressionProgressed += (s, e) =&gt; { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };

Uwagi

Nadawcą zdarzenia jest instancja Aspose.Zip.ArchiveEntry.

ExtractionProgressed

Wysyła zdarzenie, gdy część surowego strumienia została wyodrębniona.

public event EventHandler<progresseventargs> ExtractionProgressed

Typ zdarzenia

EventHandler<ProgressEventArgs&gt;

Przykłady

archive.Entries[0].ExtractionProgressed += (s, e) =&gt; { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };

Uwagi

Nadawcą zdarzenia jest instancja Aspose.Zip.ArchiveEntry.

 Polski