Class CpioArchive
Namespace: Aspose.Zip.Cpio
Assembly: Aspose.Zip.dll (25.1.0)
Lớp này đại diện cho tệp lưu trữ cpio.
public class CpioArchive : IArchive, IDisposable
Kế thừa
Triển khai
Thành viên kế thừa
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Các hàm khởi tạo
CpioArchive()
Khởi tạo một thể hiện mới của lớp Aspose.Zip.Cpio.CpioArchive.
public CpioArchive()
Ví dụ
Ví dụ sau đây cho thấy cách nén một tệp.
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
CpioArchive(Stream)
Khởi tạo một thể hiện mới của lớp Aspose.Zip.Cpio.CpioArchive và tạo danh sách các mục có thể được trích xuất từ lưu trữ.
public CpioArchive(Stream sourceStream)
Tham số
sourceStream
Stream
Nguồn của lưu trữ. Nó phải có khả năng tìm kiếm.
Ví dụ
Ví dụ sau đây cho thấy cách trích xuất tất cả các mục vào một thư mục.
using (var archive = new CpioArchive(File.OpenRead("archive.cpio")))
{
archive.ExtractToDirectory("C:\extracted");
}
Nhận xét
Hàm khởi tạo này không giải nén bất kỳ mục nào. Xem phương thức Aspose.Zip.Cpio.CpioEntry.Open để giải nén.
Ngoại lệ
sourceStream
là null.
sourceStream
không có khả năng tìm kiếm.
sourceStream
không phải là lưu trữ cpio hợp lệ.
CpioArchive(string)
Khởi tạo một thể hiện mới của lớp Aspose.Zip.Cpio.CpioArchive và tạo danh sách các mục có thể được trích xuất từ lưu trữ.
public CpioArchive(string path)
Tham số
path
string
Đường dẫn đến tệp lưu trữ.
Ví dụ
Ví dụ sau đây cho thấy cách trích xuất tất cả các mục vào một thư mục.
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Nhận xét
Hàm khởi tạo này không giải nén bất kỳ mục nào. Xem phương thức Aspose.Zip.Cpio.CpioEntry.Open để giải nén.
Ngoại lệ
path
là null.
Người gọi không có quyền truy cập cần thiết.
path
là rỗng, chỉ chứa khoảng trắng, hoặc chứa ký tự không hợp lệ.
Truy cập vào tệp path
bị từ chối.
path
, tên tệp, hoặc cả hai vượt quá chiều dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, đường dẫn phải ngắn hơn 248 ký tự, và tên tệp phải ngắn hơn 260 ký tự.
Tệp tại path
chứa dấu hai chấm (:) ở giữa chuỗi.
Tệp không được tìm thấy.
Đường dẫn được chỉ định không hợp lệ, chẳng hạn như ở trên một ổ đĩa không được ánh xạ.
Tệp đã mở rồi.
Thuộc tính
Entries
Lấy danh sách các mục của loại Aspose.Zip.Cpio.CpioEntry cấu thành lưu trữ.
public ReadOnlyCollection<cpioentry> Entries { get; }
Giá trị thuộc tính
ReadOnlyCollection<CpioEntry>
Phương thức
CreateEntries(string, bool)
Thêm tất cả các tệp và thư mục một cách đệ quy vào lưu trữ từ thư mục đã cho.
public CpioArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Tham số
sourceDirectory
string
Thư mục để nén.
includeRootDirectory
bool
Chỉ định liệu có bao gồm thư mục gốc hay không.
Trả về
Thể hiện mục cpio.
Ví dụ
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(cpioFile);
}
}
Ngoại lệ
sourceDirectory
là null.
Người gọi không có quyền truy cập cần thiết vào sourceDirectory
.
sourceDirectory
chứa ký tự không hợp lệ như “, <, >, hoặc |.
Đường dẫn, tên tệp, hoặc cả hai vượt quá chiều dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, đường dẫn phải ngắn hơn 248 ký tự, và tên tệp phải ngắn hơn 260 ký tự. Đường dẫn, tên tệp, hoặc cả hai quá dài.
sourceDirectory
đại diện cho một tệp, không phải cho một thư mục.
CreateEntries(DirectoryInfo, bool)
Thêm tất cả các tệp và thư mục một cách đệ quy vào lưu trữ từ thư mục đã cho.
public CpioArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Tham số
directory
DirectoryInfo
Thư mục để nén.
includeRootDirectory
bool
Chỉ định liệu có bao gồm thư mục gốc hay không.
Trả về
Thể hiện mục cpio.
Ví dụ
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
archive.Save(cpioFile);
}
}
Ngoại lệ
directory
là null.
Người gọi không có quyền truy cập cần thiết vào directory
.
directory
đại diện cho một tệp, không phải cho một thư mục.
CreateEntry(string, FileInfo, bool)
Tạo một mục đơn trong lưu trữ.
public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
Tham số
name
string
Tên của mục.
fileInfo
FileInfo
Siêu dữ liệu của tệp hoặc thư mục để nén.
openImmediately
bool
True nếu mở tệp ngay lập tức, ngược lại mở tệp khi lưu trữ.
Trả về
Thể hiện mục cpio.
Ví dụ
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.cpio");
}
Nhận xét
Nếu tệp được mở ngay lập tức với tham số openImmediately
, nó sẽ bị chặn cho đến khi lưu trữ được giải phóng.
Ngoại lệ
name
là null.
name
là rỗng.
fileInfo
là null.
CreateEntry(string, string, bool)
Tạo một mục đơn trong lưu trữ.
public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
Tham số
name
string
Tên của mục.
sourcePath
string
Đường dẫn đến tệp cần nén.
openImmediately
bool
True nếu mở tệp ngay lập tức, ngược lại mở tệp khi lưu trữ.
Trả về
Thể hiện mục cpio.
Ví dụ
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
Nhận xét
Tên mục chỉ được thiết lập trong tham số name
. Tên tệp được cung cấp trong tham số sourcePath
không ảnh hưởng đến tên mục.
Nếu tệp được mở ngay lập tức với tham số openImmediately
, nó sẽ bị chặn cho đến khi lưu trữ được giải phóng.
Ngoại lệ
sourcePath
là null.
Người gọi không có quyền truy cập cần thiết.
sourcePath
là rỗng, chỉ chứa khoảng trắng, hoặc chứa ký tự không hợp lệ. - hoặc - Tên tệp, như một phần của name
, vượt quá 100 ký tự.
Truy cập vào tệp sourcePath
bị từ chối.
sourcePath
, tên tệp, hoặc cả hai vượt quá chiều dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, đường dẫn phải ngắn hơn 248 ký tự, và tên tệp phải ngắn hơn 260 ký tự. - hoặc - name
quá dài cho cpio.
Tệp tại sourcePath
chứa dấu hai chấm (:) ở giữa chuỗi.
CreateEntry(string, Stream)
Tạo một mục đơn trong lưu trữ.
public CpioEntry CreateEntry(string name, Stream source)
Tham số
name
string
Tên của mục.
source
Stream
Luồng đầu vào cho mục.
Trả về
Thể hiện mục cpio.
Ví dụ
using (var archive = new CpioArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.cpio");
}
Ngoại lệ
name
là null.
source
là null.
name
là rỗng.
DeleteEntry(CpioEntry)
Xóa lần xuất hiện đầu tiên của một mục cụ thể khỏi danh sách các mục.
public CpioArchive DeleteEntry(CpioEntry entry)
Tham số
entry
CpioEntry
Mục cần xóa khỏi danh sách các mục.
Trả về
Thể hiện mục cpio.
Ví dụ
Dưới đây là cách bạn có thể xóa tất cả các mục ngoại trừ mục cuối cùng:
using (var archive = new CpioArchive("archive.cpio"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputCpioFile);
}
Ngoại lệ
entry
là null.
DeleteEntry(int)
Xóa mục khỏi danh sách các mục theo chỉ số.
public CpioArchive DeleteEntry(int entryIndex)
Tham số
entryIndex
int
Chỉ số bắt đầu từ 0 của mục cần xóa.
Trả về
Lưu trữ với mục đã bị xóa.
Ví dụ
using (var archive = new CpioArchive("two_files.cpio"))
{
archive.DeleteEntry(0);
archive.Save("single_file.cpio");
}
Ngoại lệ
entryIndex
nhỏ hơn 0.-hoặc- entryIndex
bằng hoặc lớn hơn Entries
count.
Dispose()
Thực hiện các tác vụ do ứng dụng xác định liên quan đến việc giải phóng, phát hành, hoặc đặt lại các tài nguyên không quản lý.
public void Dispose()
Dispose(bool)
Thực hiện các tác vụ do ứng dụng xác định liên quan đến việc giải phóng, phát hành, hoặc đặt lại các tài nguyên không quản lý.
protected virtual void Dispose(bool disposing)
Tham số
disposing
bool
Liệu các tài nguyên quản lý có nên được giải phóng hay không.
ExtractToDirectory(string)
Giải nén tất cả các tệp trong lưu trữ vào thư mục đã cung cấp.
public void ExtractToDirectory(string destinationDirectory)
Tham số
destinationDirectory
string
Đường dẫn đến thư mục để đặt các tệp đã giải nén.
Ví dụ
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Nhận xét
Nếu thư mục không tồn tại, nó sẽ được tạo ra.
Ngoại lệ
path là null
path
, tên tệp, hoặc cả hai vượt quá chiều dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, đường dẫn phải ngắn hơn 248 ký tự và tên tệp phải ngắn hơn 260 ký tự.
Người gọi không có quyền truy cập cần thiết vào thư mục hiện có.
Nếu thư mục không tồn tại, đường dẫn chứa ký tự dấu hai chấm (:) không phải là một phần của nhãn ổ đĩa (“C:").
path là chuỗi có độ dài bằng không, chỉ chứa khoảng trắng, hoặc chứa một hoặc nhiều ký tự không hợp lệ. Bạn có thể truy vấn các ký tự không hợp lệ bằng cách sử dụng phương thức System.IO.Path.GetInvalidPathChars. -hoặc- path được tiền tố bằng, hoặc chỉ chứa, một ký tự dấu hai chấm (:).
Thư mục được chỉ định bởi đường dẫn là một tệp. -hoặc- Tên mạng không được biết đến.
Save(string, CpioFormat)
Lưu lưu trữ vào tệp đích đã cung cấp.
public void Save(string destinationFileName, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
destinationFileName
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save("archive.cpio");
}
Nhận xét
Có thể lưu một lưu trữ vào cùng một đường dẫn mà nó đã được tải từ. Tuy nhiên, điều này không được khuyến nghị vì cách tiếp cận này sử dụng sao chép vào tệp tạm thời.
Ngoại lệ
destinationFileName
là chuỗi có độ dài bằng không, chỉ chứa khoảng trắng, hoặc chứa một hoặc nhiều ký tự không hợp lệ như được định nghĩa bởi System.IO.Path.InvalidPathChars.
destinationFileName
là null.
destinationFileName
, tên tệp, hoặc cả hai vượt quá chiều dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, đường dẫn phải ngắn hơn 248 ký tự, và tên tệp phải ngắn hơn 260 ký tự.
destinationFileName
được chỉ định không hợp lệ, (ví dụ, nó nằm trên một ổ đĩa không được ánh xạ).
Đã xảy ra lỗi I/O khi mở tệp.
destinationFileName
chỉ định một tệp chỉ đọc và không có quyền truy cập Đọc.-hoặc- đường dẫn chỉ định một thư mục.-hoặc- Người gọi không có quyền truy cập cần thiết.
destinationFileName
ở định dạng không hợp lệ.
Save(Stream, CpioFormat)
Lưu lưu trữ vào luồng đã cung cấp.
public void Save(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save(cpioFile);
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi. - hoặc - output
là cùng một luồng mà chúng tôi trích xuất từ.
- HOẶC -
Không thể lưu lưu trữ trong cpioFormat
do các hạn chế về định dạng.
SaveGzipped(Stream, CpioFormat)
Lưu lưu trữ vào luồng với nén gzip.
public void SaveGzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi.
SaveGzipped(string, CpioFormat)
Lưu lưu trữ vào tệp theo đường dẫn với nén gzip.
public void SaveGzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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)
Lưu lưu trữ vào luồng với nén LZMA.
public void SaveLZMACompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
SaveLZMACompressed(string, CpioFormat)
Lưu lưu trữ vào tệp theo đường dẫn với nén lzma.
public void SaveLZMACompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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");
}
}
Nhận xét
Quan trọng: lưu trữ cpio được cấu thành và sau đó nén trong phương thức này, nội dung của nó được giữ bên trong. Cẩn thận với mức tiêu thụ bộ nhớ.
SaveLzipped(Stream, CpioFormat)
Lưu lưu trữ vào luồng với nén lzip.
public void SaveLzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi.
SaveLzipped(string, CpioFormat)
Lưu lưu trữ vào tệp theo đường dẫn với nén lzip.
public void SaveLzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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)
Lưu lưu trữ vào luồng với nén xz.
public void SaveXzCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
settings
XzArchiveSettings
Tập hợp các thiết lập cho lưu trữ xz: kích thước từ điển, kích thước khối, loại kiểm tra.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi.
SaveXzCompressed(string, CpioFormat, XzArchiveSettings)
Lưu lưu trữ vào đường dẫn với nén xz.
public void SaveXzCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
settings
XzArchiveSettings
Tập hợp các thiết lập cho lưu trữ xz: kích thước từ điển, kích thước khối, loại kiểm tra.
Ví dụ
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)
Lưu lưu trữ vào luồng với nén Z.
public void SaveZCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi.
SaveZCompressed(string, CpioFormat)
Lưu lưu trữ vào đường dẫn với nén Z.
public void SaveZCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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)
Lưu lưu trữ vào luồng với nén Zstandard.
public void SaveZstandard(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
output
Stream
Luồng đích.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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);
}
}
}
Nhận xét
output
phải có khả năng ghi.
Ngoại lệ
output
là null.
output
không có khả năng ghi.
SaveZstandard(string, CpioFormat)
Lưu lưu trữ vào tệp theo đường dẫn với nén Zstandard.
public void SaveZstandard(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Tham số
path
string
Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp chỉ định trỏ đến một tệp hiện có, nó sẽ bị ghi đè.
cpioFormat
CpioFormat
Định nghĩa định dạng tiêu đề cpio.
Ví dụ
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");
}
}