Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Representerar en enskild fil inom 7z-arkivet.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Arv
Härledd
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Implementerar
Arvade medlemmar
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Kommentarer
Kasta en instans av Aspose.Zip.SevenZip.SevenZipArchiveEntry till Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted för att avgöra om posten är krypterad eller inte.
Konstruktörer
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Initierar en ny instans av klassen Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parametrar
parent
SevenZipArchive
name
string
Postnamn.
compressionSettings
SevenZipCompressionSettings
Inställningar för komprimering eller dekomprimering.
source
Stream
Ström med postdata som ska komprimeras eller dekomprimeras.
fileAttributes
FileAttributes
Attribut från filsystemet.
fileInfo
FileSystemInfo
Fil- eller kataloginformation som posten baseras på.
Undantag
name
är null eller tom.
Egenskaper
CompressedSize
Hämtar storleken på den komprimerade filen.
public ulong CompressedSize { get; }
Egenskapsvärde
CompressionSettings
Hämtar inställningar för komprimering eller dekomprimering.
public SevenZipCompressionSettings CompressionSettings { get; }
Egenskapsvärde
FileAttributes
Hämtar filattribut från värdsystemet.
protected FileAttributes FileAttributes { get; }
Egenskapsvärde
IsDirectory
Hämtar ett värde som indikerar om posten representerar en katalog.
public bool IsDirectory { get; }
Egenskapsvärde
ModificationTime
Hämtar datum och tid för senaste modifiering.
public DateTime ModificationTime { get; }
Egenskapsvärde
Name
Hämtar namnet på posten inom arkivet.
public string Name { get; protected set; }
Egenskapsvärde
Source
Hämtar datakällströmmen för posten.
protected Stream Source { get; set; }
Egenskapsvärde
UncompressedSize
Hämtar storleken på den ursprungliga filen.
public ulong UncompressedSize { get; }
Egenskapsvärde
Metoder
Extract(string, string)
Extraherar posten till filsystemet via den angivna sökvägen.
public FileInfo Extract(string path, string password = null)
Parametrar
sökväg
string
Sökvägen till destinationsfilen. Om filen redan finns kommer den att skrivas över.
lösenord
string
Valfritt lösenord för dekryptering.
Returer
Filinformationen för den skapade filen.
Exempel
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Undantag
sökväg
är null.
Anroparen har inte nödvändiga behörigheter för att få åtkomst.
sökväg
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till filen sökväg
nekas.
Den angivna sökvägen
, filnamnet eller båda överskrider det systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Fil på sökväg
innehåller ett kolon (:) i mitten av strängen.
Arkivet är skadat.
Extract(Stream, string)
Extraherar posten till den angivna strömmen.
public void Extract(Stream destination, string password = null)
Parametrar
destination
Stream
Destinationsström. Måste vara skrivbar.
lösenord
string
Valfritt lösenord för dekryptering.
Exempel
Extrahera en post från zip-arkivet med lösenord.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Undantag
destination
stödjer inte skrivning.
Arkivet är inte öppnat för extraktion. - eller - Denna post är en katalog.
Felaktiga data inom posten.
FinalizeCompressedData(Stream, byte[])
Skriver till utströmmen eventuella rubriker som följer komprimerade data.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parametrar
outputStream
Stream
Utström för posten.
encoderProperties
byte[]
Egenskaper för kompressorn.
Returer
Antal “tekniska” byte som lades till efter den betydande datablocket för posten.
GetDestinationStream(Stream)
Destinationsström för posten, kan dekoreras.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parametrar
outputStream
Stream
Utström för posten.
Returer
Destinationsströmmen för postkomprimering.
Open(string)
Öppnar posten för extraktion och tillhandahåller en ström med innehållet i posten.
public Stream Open(string password = null)
Parametrar
lösenord
string
Valfritt lösenord för dekryptering.
Returer
Strömmen som representerar innehållet i posten.
Exempel
Användning:
Stream decompressed = entry.Open();
.NET 4.0 och högre - använd metoden Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 och tidigare - kopiera byte manuellt:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Kommentarer
Läs från strömmen för att få det ursprungliga innehållet i filen. Se avsnittet exempel.
#### Undantag
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Arkivet är inte öppnat för extraktion. - eller - Denna post är en katalog.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Felaktiga data inom posten.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Uppstår när en del av den råa strömmen komprimeras.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Händelsetyp
EventHandler<ProgressEventArgs>
Exempel
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Kommentarer
Händelseavsändaren är en instans av Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Uppropas inte i flertrådad läge för LZMA2-poster.