Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Rappresenta un singolo file all’interno di un archivio 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Ereditarietà
Derivato
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Implementa
Membri ereditati
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Osservazioni
Effettuare il cast di un’istanza di Aspose.Zip.SevenZip.SevenZipArchiveEntry a Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted per determinare se l’elemento è crittografato o meno.
Costruttori
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inizializza una nuova istanza della classe Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parametri
parent
SevenZipArchive
name
string
Nome dell’elemento.
compressionSettings
SevenZipCompressionSettings
Impostazioni per la compressione o la decompressione.
source
Stream
Stream con i dati dell’elemento da comprimere o decomprimere.
fileAttributes
FileAttributes
Attributi dal file system.
fileInfo
FileSystemInfo
Informazioni sul file o sulla directory su cui si basa l’elemento.
Eccezioni
Il name
è nullo o vuoto.
Proprietà
CompressedSize
Ottiene la dimensione del file compresso.
public ulong CompressedSize { get; }
Valore della Proprietà
CompressionSettings
Ottiene le impostazioni per la compressione o la decompressione.
public SevenZipCompressionSettings CompressionSettings { get; }
Valore della Proprietà
FileAttributes
Ottiene gli attributi del file dal sistema host.
protected FileAttributes FileAttributes { get; }
Valore della Proprietà
IsDirectory
Ottiene un valore che indica se l’elemento rappresenta una directory.
public bool IsDirectory { get; }
Valore della Proprietà
ModificationTime
Ottiene la data e l’ora dell’ultima modifica.
public DateTime ModificationTime { get; }
Valore della Proprietà
Name
Ottiene il nome dell’elemento all’interno dell’archivio.
public string Name { get; protected set; }
Valore della Proprietà
Source
Ottiene lo stream della sorgente dati per l’elemento.
protected Stream Source { get; set; }
Valore della Proprietà
UncompressedSize
Ottiene la dimensione del file originale.
public ulong UncompressedSize { get; }
Valore della Proprietà
Metodi
Extract(string, string)
Estrae l’elemento nel file system secondo il percorso fornito.
public FileInfo Extract(string path, string password = null)
Parametri
path
string
Il percorso del file di destinazione. Se il file esiste già, verrà sovrascritto.
password
string
Password opzionale per la decrittazione.
Restituisce
Le informazioni sul file composto.
Esempi
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Eccezioni
path
è nullo.
Il chiamante non ha il permesso richiesto per accedere.
Il path
è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
Accesso al file path
negato.
Il path
, il nome del file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il file in path
contiene due punti (:) nel mezzo della stringa.
L’archivio è corrotto.
Extract(Stream, string)
Estrae l’elemento nello stream fornito.
public void Extract(Stream destination, string password = null)
Parametri
destination
Stream
Stream di destinazione. Deve essere scrivibile.
password
string
Password opzionale per la decrittazione.
Esempi
Estrai un elemento di un archivio zip con password.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Eccezioni
destination
non supporta la scrittura.
L’archivio non è stato aperto per l’estrazione. - o - Questo elemento è una directory.
Dati errati all’interno dell’elemento.
FinalizeCompressedData(Stream, byte[])
Scrive nello stream di output eventuali intestazioni che seguono i dati compressi.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parametri
outputStream
Stream
Stream di output per l’elemento.
encoderProperties
byte[]
Proprietà del compressore.
Restituisce
Numero di byte “tecnici” che sono stati aggiunti dopo il blocco di dati significativo dell’elemento.
GetDestinationStream(Stream)
Stream di destinazione per l’elemento, può essere decorato.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parametri
outputStream
Stream
Stream di output per l’elemento.
Restituisce
Lo stream di destinazione per la compressione dell’elemento.
Open(string)
Apre l’elemento per l’estrazione e fornisce uno stream con il contenuto dell’elemento.
public Stream Open(string password = null)
Parametri
password
string
Password opzionale per la decrittazione.
Restituisce
Lo stream che rappresenta il contenuto dell’elemento.
Esempi
Utilizzo:
Stream decompressed = entry.Open();
.NET 4.0 e superiori - usa il metodo Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 e precedenti - copia i byte manualmente:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Osservazioni
Leggi dallo stream per ottenere il contenuto originale del file. Vedi la sezione esempi.
#### Eccezioni
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
L'archivio non è stato aperto per l'estrazione. - o - Questo elemento è una directory.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Dati errati all'interno dell'elemento.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Si attiva quando una porzione di stream grezzo è stata compressa.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Tipo di Evento
EventHandler<ProgressEventArgs>
Esempi
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Osservazioni
Il mittente dell'evento è un'istanza di Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Non si attiva in modalità multi-thread per le voci LZMA2.