Class CpioArchive
Namespace: Aspose.Zip.Cpio
Assembly: Aspose.Zip.dll (25.1.0)
Ta klasa reprezentuje plik archiwum cpio.
public class CpioArchive : IArchive, IDisposable
Dziedziczenie
Implementuje
Członkowie dziedziczeni
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Konstruktory
CpioArchive()
Inicjalizuje nową instancję klasy Aspose.Zip.Cpio.CpioArchive.
public CpioArchive()
Przykłady
W poniższym przykładzie pokazano, jak skompresować plik.
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
CpioArchive(Stream)
Inicjalizuje nową instancję klasy Aspose.Zip.Cpio.CpioArchive i tworzy listę wpisów, które można wyodrębnić z archiwum.
public CpioArchive(Stream sourceStream)
Parametry
sourceStream
Stream
Źródło archiwum. Musi być możliwe do przeszukiwania.
Przykłady
W poniższym przykładzie pokazano, jak wyodrębnić wszystkie wpisy do katalogu.
using (var archive = new CpioArchive(File.OpenRead("archive.cpio")))
{
archive.ExtractToDirectory("C:\extracted");
}
Uwagi
Ten konstruktor nie rozpakowuje żadnego wpisu. Zobacz metodę Aspose.Zip.Cpio.CpioEntry.Open, aby rozpakować.
Wyjątki
sourceStream
jest nullem.
sourceStream
nie jest możliwe do przeszukiwania.
sourceStream
nie jest ważnym archiwum cpio.
CpioArchive(string)
Inicjalizuje nową instancję klasy Aspose.Zip.Cpio.CpioArchive i tworzy listę wpisów, które można wyodrębnić z archiwum.
public CpioArchive(string path)
Parametry
path
string
Ścieżka do pliku archiwum.
Przykłady
W poniższym przykładzie pokazano, jak wyodrębnić wszystkie wpisy do katalogu.
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Uwagi
Ten konstruktor nie rozpakowuje żadnego wpisu. Zobacz metodę Aspose.Zip.Cpio.CpioEntry.Open, aby rozpakować.
Wyjątki
path
jest nullem.
Wywołujący nie ma wymaganych uprawnień do dostępu.
path
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku path
jest zabroniony.
Określona path
, nazwa pliku lub oba przekraczają maksymalną długość określoną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.
Plik w path
zawiera dwukropek (:) w środku ciągu.
Plik nie został znaleziony.
Określona ścieżka jest nieprawidłowa, na przykład znajduje się na nieprzypisanym dysku.
Plik jest już otwarty.
Właściwości
Entries
Zwraca wpisy typu Aspose.Zip.Cpio.CpioEntry, które tworzą archiwum.
public ReadOnlyCollection<cpioentry> Entries { get; }
Wartość właściwości
ReadOnlyCollection<CpioEntry>
Metody
CreateEntries(string, bool)
Dodaje do archiwum wszystkie pliki i katalogi rekurencyjnie w podanym katalogu.
public CpioArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parametry
sourceDirectory
string
Katalog do skompresowania.
includeRootDirectory
bool
Określa, czy uwzględnić sam katalog główny, czy nie.
Zwraca
Instancja wpisu Cpio.
Przykłady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(cpioFile);
}
}
Wyjątki
sourceDirectory
jest nullem.
Wywołujący nie ma wymaganych uprawnień do dostępu do sourceDirectory
.
sourceDirectory
zawiera nieprawidłowe znaki, takie jak “, <, > lub |.
Określona ścieżka, nazwa pliku lub oba przekraczają maksymalną długość określoną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków. Określona ścieżka, nazwa pliku lub oba są zbyt długie.
sourceDirectory
odnosi się do pliku, a nie do katalogu.
CreateEntries(DirectoryInfo, bool)
Dodaje do archiwum wszystkie pliki i katalogi rekurencyjnie w podanym katalogu.
public CpioArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parametry
directory
DirectoryInfo
Katalog do skompresowania.
includeRootDirectory
bool
Określa, czy uwzględnić sam katalog główny, czy nie.
Zwraca
Instancja wpisu Cpio.
Przykłady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
archive.Save(cpioFile);
}
}
Wyjątki
directory
jest nullem.
Wywołujący nie ma wymaganych uprawnień do dostępu do directory
.
directory
odnosi się do pliku, a nie do katalogu.
CreateEntry(string, FileInfo, bool)
Tworzy pojedynczy wpis w archiwum.
public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
Parametry
name
string
Nazwa wpisu.
fileInfo
FileInfo
Metadane pliku lub folderu do skompresowania.
openImmediately
bool
Prawda, jeśli otworzyć plik natychmiast, w przeciwnym razie otwórz plik podczas zapisywania archiwum.
Zwraca
Instancja wpisu Cpio.
Przykłady
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.cpio");
}
Uwagi
Jeśli plik jest otwierany natychmiast z parametrem openImmediately
, staje się zablokowany, aż archiwum zostanie zwolnione.
Wyjątki
name
jest nullem.
name
jest pusty.
fileInfo
jest nullem.
CreateEntry(string, string, bool)
Tworzy pojedynczy wpis w archiwum.
public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
Parametry
name
string
Nazwa wpisu.
sourcePath
string
Ścieżka do pliku do skompresowania.
openImmediately
bool
Prawda, jeśli otworzyć plik natychmiast, w przeciwnym razie otwórz plik podczas zapisywania archiwum.
Zwraca
Instancja wpisu Cpio.
Przykłady
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
Uwagi
Nazwa wpisu jest ustalana wyłącznie w parametrze name
. Nazwa pliku podana w parametrze sourcePath
nie wpływa na nazwę wpisu.
Jeśli plik jest otwierany natychmiast z parametrem openImmediately
, staje się zablokowany, aż archiwum zostanie zwolnione.
Wyjątki
sourcePath
jest nullem.
Wywołujący nie ma wymaganych uprawnień do dostępu.
sourcePath
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki. - lub - Nazwa pliku, jako część name
, przekracza 100 symboli.
Dostęp do pliku sourcePath
jest zabroniony.
Określona sourcePath
, nazwa pliku lub oba przekraczają maksymalną długość określoną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków. - lub - name
jest zbyt długie dla cpio.
Plik w sourcePath
zawiera dwukropek (:) w środku ciągu.
CreateEntry(string, Stream)
Tworzy pojedynczy wpis w archiwum.
public CpioEntry CreateEntry(string name, Stream source)
Parametry
name
string
Nazwa wpisu.
source
Stream
Strumień wejściowy dla wpisu.
Zwraca
Instancja wpisu Cpio.
Przykłady
using (var archive = new CpioArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.cpio");
}
Wyjątki
name
jest nullem.
source
jest nullem.
name
jest pusty.
DeleteEntry(CpioEntry)
Usuwa pierwsze wystąpienie określonego wpisu z listy wpisów.
public CpioArchive DeleteEntry(CpioEntry entry)
Parametry
entry
CpioEntry
Wpis do usunięcia z listy wpisów.
Zwraca
Instancja wpisu Cpio.
Przykłady
Oto jak możesz usunąć wszystkie wpisy oprócz ostatniego:
using (var archive = new CpioArchive("archive.cpio"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputCpioFile);
}
Wyjątki
entry
jest nullem.
DeleteEntry(int)
Usuwa wpis z listy wpisów według indeksu.
public CpioArchive DeleteEntry(int entryIndex)
Parametry
entryIndex
int
Indeks zerowy wpisu do usunięcia.
Zwraca
Archiwum z usuniętym wpisem.
Przykłady
using (var archive = new CpioArchive("two_files.cpio"))
{
archive.DeleteEntry(0);
archive.Save("single_file.cpio");
}
Wyjątki
entryIndex
jest mniejszy niż 0. - lub - entryIndex
jest równy lub większy niż Entries
liczba.
Dispose()
Wykonuje zadania zdefiniowane przez aplikację związane z zwalnianiem, uwalnianiem lub resetowaniem niezarządzanych zasobów.
public void Dispose()
Dispose(bool)
Wykonuje zadania zdefiniowane przez aplikację związane z zwalnianiem, uwalnianiem lub resetowaniem niezarządzanych zasobów.
protected virtual void Dispose(bool disposing)
Parametry
disposing
bool
Określa, czy zasoby zarządzane powinny być zwolnione.
ExtractToDirectory(string)
Wyodrębnia wszystkie pliki w archiwum do podanego katalogu.
public void ExtractToDirectory(string destinationDirectory)
Parametry
destinationDirectory
string
Ścieżka do katalogu, w którym mają zostać umieszczone wyodrębnione pliki.
Przykłady
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Uwagi
Jeśli katalog nie istnieje, zostanie utworzony.
Wyjątki
ścieżka jest nullem
Określona ścieżka, nazwa pliku lub oba przekraczają maksymalną długość określoną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.
Wywołujący nie ma wymaganych uprawnień do dostępu do istniejącego katalogu.
Jeśli katalog nie istnieje, ścieżka zawiera znak dwukropka (:) który nie jest częścią etykiety dysku (“C:").
ścieżka jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz zapytać o nieprawidłowe znaki, używając metody System.IO.Path.GetInvalidPathChars. - lub - ścieżka jest poprzedzona lub zawiera tylko znak dwukropka (:).
Katalog określony przez ścieżkę jest plikiem. - lub - Nazwa sieci nie jest znana.
Save(string, CpioFormat)
Zapisuje archiwum do podanego pliku docelowego.
public void Save(string destinationFileName, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
destinationFileName
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save("archive.cpio");
}
Uwagi
Możliwe jest zapisanie archiwum w tej samej ścieżce, z której zostało załadowane. Jednak nie jest to zalecane, ponieważ podejście to wymaga kopiowania do pliku tymczasowego.
Wyjątki
destinationFileName
jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez System.IO.Path.InvalidPathChars.
destinationFileName
jest nullem.
Określona destinationFileName
, nazwa pliku lub oba przekraczają maksymalną długość określoną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.
Określona destinationFileName
jest nieprawidłowa, (na przykład znajduje się na nieprzypisanym dysku).
Wystąpił błąd I/O podczas otwierania pliku.
destinationFileName
wskazuje na plik, który jest tylko do odczytu, a dostęp nie jest odczytem. - lub - ścieżka wskazuje na katalog. - lub - Wywołujący nie ma wymaganych uprawnień.
destinationFileName
jest w nieprawidłowym formacie.
Save(Stream, CpioFormat)
Zapisuje archiwum do podanego strumienia.
public void Save(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save(cpioFile);
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny. - lub - output
jest tym samym strumieniem, z którego wyodrębniamy.
- LUB -
Nie można zapisać archiwum w cpioFormat
z powodu ograniczeń formatu.
SaveGzipped(Stream, CpioFormat)
Zapisuje archiwum do strumienia z kompresją gzip.
public void SaveGzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.gz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped(result);
}
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny.
SaveGzipped(string, CpioFormat)
Zapisuje archiwum do pliku według ścieżki z kompresją gzip.
public void SaveGzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.cpio.gz");
}
}
SaveLZMACompressed(Stream, CpioFormat)
Zapisuje archiwum do strumienia z kompresją LZMA.
public void SaveLZMACompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.lzma"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed(result);
}
}
}
Uwagi
output
musi być zapisywalny.
SaveLZMACompressed(string, CpioFormat)
Zapisuje archiwum do pliku według ścieżki z kompresją lzma.
public void SaveLZMACompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed("result.cpio.lzma");
}
}
Uwagi
Ważne: archiwum cpio jest tworzone, a następnie kompresowane w tej metodzie, jego zawartość jest przechowywana wewnętrznie. Należy uważać na zużycie pamięci.
SaveLzipped(Stream, CpioFormat)
Zapisuje archiwum do strumienia z kompresją lzip.
public void SaveLzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.lz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped(result);
}
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny.
SaveLzipped(string, CpioFormat)
Zapisuje archiwum do pliku według ścieżki z kompresją lzip.
public void SaveLzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.cpio.lz");
}
}
SaveXzCompressed(Stream, CpioFormat, XzArchiveSettings)
Zapisuje archiwum do strumienia z kompresją xz.
public void SaveXzCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
settings
XzArchiveSettings
Zestaw ustawień dla konkretnego archiwum xz: rozmiar słownika, rozmiar bloku, typ sprawdzania.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.xz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed(result);
}
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny.
SaveXzCompressed(string, CpioFormat, XzArchiveSettings)
Zapisuje archiwum do pliku według ścieżki z kompresją xz.
public void SaveXzCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
settings
XzArchiveSettings
Zestaw ustawień dla konkretnego archiwum xz: rozmiar słownika, rozmiar bloku, typ sprawdzania.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed("result.cpio.xz");
}
}
SaveZCompressed(Stream, CpioFormat)
Zapisuje archiwum do strumienia z kompresją Z.
public void SaveZCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.Z"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed(result);
}
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny.
SaveZCompressed(string, CpioFormat)
Zapisuje archiwum do pliku według ścieżki z kompresją Z.
public void SaveZCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed("result.cpio.Z");
}
}
SaveZstandard(Stream, CpioFormat)
Zapisuje archiwum do strumienia z kompresją Zstandard.
public void SaveZstandard(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Strumień docelowy.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream result = File.OpenWrite("result.cpio.zst"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard(result);
}
}
}
Uwagi
output
musi być zapisywalny.
Wyjątki
output
jest nullem.
output
nie jest zapisywalny.
SaveZstandard(string, CpioFormat)
Zapisuje archiwum do pliku według ścieżki z kompresją Zstandard.
public void SaveZstandard(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Ścieżka archiwum, które ma zostać utworzone. Jeśli podana nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.
cpioFormat
CpioFormat
Określa format nagłówka cpio.
Przykłady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard("result.cpio.zst");
}
}