Class SharArchive
Namespace: Aspose.Zip.Shar
Assembly: Aspose.Zip.dll (25.1.0)
Diese Klasse stellt eine Shar-Archivdatei dar.
public class SharArchive : IDisposable
Vererbung
Implementiert
Vererbte Mitglieder
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Konstruktoren
SharArchive()
Initialisiert eine neue Instanz der Aspose.Zip.Shar.SharArchive-Klasse.
public SharArchive()
Beispiele
Das folgende Beispiel zeigt, wie man eine Datei komprimiert.
using (var archive = new SharArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.shar");
}
SharArchive(string)
Initialisiert eine neue Instanz der Aspose.Zip.Shar.SharArchive-Klasse, die zum Dekomprimieren vorbereitet ist.
public SharArchive(string path)
Parameter
path
string
Pfad zur Quelle des Archivs.
Ausnahmen
path
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung zum Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder ungültige Zeichen.
Zugriff auf die Datei path
ist verweigert.
Der angegebene path
, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen Pfade auf Windows-basierten Plattformen weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
Die Datei wurde nicht gefunden.
Der angegebene Pfad ist ungültig, z. B. weil er sich auf einem nicht zugeordneten Laufwerk befindet.
Die Datei ist bereits geöffnet.
Eigenschaften
Entries
Erhält die Einträge des Typs Aspose.Zip.Shar.SharEntry, die das Archiv bilden.
public ReadOnlyCollection<sharentry> Entries { get; }
Eigenschaftswert
ReadOnlyCollection<SharEntry>
Methoden
CreateEntries(string, bool)
Fügt dem Archiv alle Dateien und Verzeichnisse rekursiv im angegebenen Verzeichnis hinzu.
public SharArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameter
sourceDirectory
string
Verzeichnis zum Komprimieren.
includeRootDirectory
bool
Gibt an, ob das Wurzelverzeichnis selbst einbezogen werden soll oder nicht.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
using (var archive = new SharArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(sharFile);
}
}
Ausnahmen
sourceDirectory
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung zum Zugriff auf sourceDirectory
.
sourceDirectory
enthält ungültige Zeichen wie “, <, > oder |.
Der angegebene Pfad, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen Pfade auf Windows-basierten Plattformen weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein. Der angegebene Pfad, Dateiname oder beides sind zu lang.
sourceDirectory
steht für eine Datei, nicht für ein Verzeichnis.
CreateEntries(DirectoryInfo, bool)
Fügt dem Archiv alle Dateien und Verzeichnisse rekursiv im angegebenen Verzeichnis hinzu.
public SharArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameter
directory
DirectoryInfo
Verzeichnis zum Komprimieren.
includeRootDirectory
bool
Gibt an, ob das Wurzelverzeichnis selbst einbezogen werden soll oder nicht.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
using (var archive = new SharArchive())
{
archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
archive.Save(sharFile);
}
}
Ausnahmen
directory
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung zum Zugriff auf directory
.
directory
steht für eine Datei, nicht für ein Verzeichnis.
CreateEntry(string, FileInfo, bool)
Erstellt einen einzelnen Eintrag innerhalb des Archivs.
public SharEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
Parameter
name
string
Der Name des Eintrags.
fileInfo
FileInfo
Die Metadaten der Datei oder des Ordners, die komprimiert werden sollen.
openImmediately
bool
Wahr, wenn die Datei sofort geöffnet werden soll, andernfalls wird die Datei beim Speichern des Archivs geöffnet.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new SharArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.shar");
}
Bemerkungen
Wenn die Datei sofort mit dem Parameter openImmediately
geöffnet wird, bleibt sie blockiert, bis das Archiv freigegeben wird.
Ausnahmen
name
ist null.
name
ist leer.
fileInfo
ist null.
CreateEntry(string, string, bool)
Erstellt einen einzelnen Eintrag innerhalb des Archivs.
public SharEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
Parameter
name
string
Der Name des Eintrags.
sourcePath
string
Pfad zur Datei, die komprimiert werden soll.
openImmediately
bool
Wahr, wenn die Datei sofort geöffnet werden soll, andernfalls wird die Datei beim Speichern des Archivs geöffnet.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
using (var archive = new SharArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.shar");
}
Bemerkungen
Der Eintragsname wird ausschließlich im Parameter name
festgelegt. Der Dateiname, der im Parameter sourcePath
angegeben ist, hat keinen Einfluss auf den Eintragsnamen.
Wenn die Datei sofort mit dem Parameter openImmediately
geöffnet wird, bleibt sie blockiert, bis das Archiv freigegeben wird.
Ausnahmen
sourcePath
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung zum Zugriff.
Der sourcePath
ist leer, enthält nur Leerzeichen oder ungültige Zeichen. - oder - Der Dateiname, der Teil von name
ist, überschreitet 100 Zeichen.
Zugriff auf die Datei sourcePath
ist verweigert.
Der angegebene sourcePath
, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen Pfade auf Windows-basierten Plattformen weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein. - oder - name
ist zu lang für Shar.
Die Datei unter sourcePath
enthält einen Doppelpunkt (:) in der Mitte des Strings.
CreateEntry(string, Stream)
Erstellt einen einzelnen Eintrag innerhalb des Archivs.
public SharEntry CreateEntry(string name, Stream source)
Parameter
name
string
Der Name des Eintrags.
source
Stream
Der Eingabestream für den Eintrag.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
using (var archive = new SharArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.shar");
}
Ausnahmen
name
ist null.
source
ist null.
name
ist leer.
DeleteEntry(SharEntry)
Entfernt das erste Vorkommen eines bestimmten Eintrags aus der Eintragsliste.
public SharArchive DeleteEntry(SharEntry entry)
Parameter
entry
SharEntry
Der Eintrag, der aus der Eintragsliste entfernt werden soll.
Rückgabewert
Instanz des Shar-Eintrags.
Beispiele
Hier ist, wie Sie alle Einträge außer dem letzten entfernen können:
using (var archive = new SharArchive("archive.shar"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputSharFile);
}
Ausnahmen
entry
ist null.
DeleteEntry(int)
Entfernt den Eintrag aus der Eintragsliste nach Index.
public SharArchive DeleteEntry(int entryIndex)
Parameter
entryIndex
int
Der nullbasierte Index des zu entfernenden Eintrags.
Rückgabewert
Das Archiv mit dem gelöschten Eintrag.
Beispiele
using (var archive = new SharArchive("two_files.shar"))
{
archive.DeleteEntry(0);
archive.Save("single_file.shar");
}
Ausnahmen
entryIndex
ist kleiner als 0. - oder - entryIndex
ist gleich oder größer als Entries
Anzahl.
Dispose(bool)
Führt anwendungsspezifische Aufgaben aus, die mit dem Freigeben, Zurücksetzen oder Freigeben von nicht verwalteten Ressourcen verbunden sind.
protected virtual void Dispose(bool disposing)
Parameter
disposing
bool
Ob verwaltete Ressourcen freigegeben werden sollen.
Dispose()
Führt anwendungsspezifische Aufgaben aus, die mit dem Freigeben, Zurücksetzen oder Freigeben von nicht verwalteten Ressourcen verbunden sind.
public void Dispose()
Save(string)
Speichert das Archiv in der angegebenen Zieldatei.
public void Save(string destinationFileName)
Parameter
destinationFileName
string
Der Pfad des zu erstellenden Archivs. Wenn der angegebene Dateiname auf eine vorhandene Datei verweist, wird diese überschrieben.
Beispiele
using (var archive = new SharArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save("archive.shar");
}
Bemerkungen
Es ist möglich, ein Archiv im gleichen Pfad zu speichern, von dem es geladen wurde. Dies wird jedoch nicht empfohlen, da dieser Ansatz das Kopieren in eine temporäre Datei verwendet.
Ausnahmen
destinationFileName
ist eine Nullzeichenfolge, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen, wie sie von System.IO.Path.InvalidPathChars definiert sind.
destinationFileName
ist null.
Der angegebene destinationFileName
, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen Pfade auf Windows-basierten Plattformen weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Der angegebene destinationFileName
ist ungültig, (z. B. weil er sich auf einem nicht zugeordneten Laufwerk befindet).
Ein I/O-Fehler ist aufgetreten, während die Datei geöffnet wurde.
destinationFileName
gibt eine schreibgeschützte Datei an und der Zugriff ist nicht schreibbar. - oder - Der angegebene Pfad ist ein Verzeichnis. - oder - Der Aufrufer hat nicht die erforderliche Berechtigung.
destinationFileName
hat ein ungültiges Format.
Die Datei wurde nicht gefunden.
Save(Stream)
Speichert das Archiv im angegebenen Stream.
public void Save(Stream output)
Parameter
output
Stream
Zielstream.
Beispiele
using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
using (var archive = new SharArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save(sharFile);
}
}
Bemerkungen
output
muss beschreibbar sein.
Ausnahmen
output
ist null.
output
ist nicht beschreibbar. - oder - output
ist der gleiche Stream, von dem wir extrahieren.