ZipPackage Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan subkelas turunan dari kelas dasar abstrak Package - ZipPackage kelas menggunakan arsip ZIP sebagai penyimpanan kontainer. Kelas ini tidak dapat diwariskan.
public ref class ZipPackage sealed : System::IO::Packaging::Package
public sealed class ZipPackage : System.IO.Packaging.Package
type ZipPackage = class
inherit Package
Public NotInheritable Class ZipPackage
Inherits Package
- Warisan
Contoh
Contoh ini menunjukkan cara membuat dasar ZipPackage.
Contoh membuat paket yang berisi satu bagian dokumen yang didefinisikan sebagai elemen akar paket oleh tingkat PackageRelationshippaket .
Paket ini juga berisi bagian gambar dan detik PackageRelationship yang menentukan hubungan antara bagian dokumen sumber dan bagian gambar target. (Gambar adalah sumber daya yang digunakan dengan dokumen).
// -------------------------- CreatePackage --------------------------
/// <summary>
/// Creates a package zip file containing specified
/// content and resource files.</summary>
private static void CreatePackage()
{
// Convert system path and file names to Part URIs. In this example
// Uri partUriDocument /* /Content/Document.xml */ =
// PackUriHelper.CreatePartUri(
// new Uri("Content\Document.xml", UriKind.Relative));
// Uri partUriResource /* /Resources/Image1.jpg */ =
// PackUriHelper.CreatePartUri(
// new Uri("Resources\Image1.jpg", UriKind.Relative));
Uri partUriDocument = PackUriHelper.CreatePartUri(
new Uri(documentPath, UriKind.Relative));
Uri partUriResource = PackUriHelper.CreatePartUri(
new Uri(resourcePath, UriKind.Relative));
// Create the Package
// (If the package file already exists, FileMode.Create will
// automatically delete it first before creating a new one.
// The 'using' statement insures that 'package' is
// closed and disposed when it goes out of scope.)
using (Package package =
Package.Open(packagePath, FileMode.Create))
{
// Add the Document part to the Package
PackagePart packagePartDocument =
package.CreatePart(partUriDocument,
System.Net.Mime.MediaTypeNames.Text.Xml);
// Copy the data to the Document Part
using (FileStream fileStream = new FileStream(
documentPath, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, packagePartDocument.GetStream());
}// end:using(fileStream) - Close and dispose fileStream.
// Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri,
TargetMode.Internal,
PackageRelationshipType);
// Add a Resource Part to the Package
PackagePart packagePartResource =
package.CreatePart(partUriResource,
System.Net.Mime.MediaTypeNames.Image.Jpeg);
// Copy the data to the Resource Part
using (FileStream fileStream = new FileStream(
resourcePath, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, packagePartResource.GetStream());
}// end:using(fileStream) - Close and dispose fileStream.
// Add Relationship from the Document part to the Resource part
packagePartDocument.CreateRelationship(
new Uri(@"../resources/image1.jpg",
UriKind.Relative),
TargetMode.Internal,
ResourceRelationshipType);
}// end:using (Package package) - Close and dispose package.
}// end:CreatePackage()
// --------------------------- CopyStream ---------------------------
/// <summary>
/// Copies data from a source stream to a target stream.</summary>
/// <param name="source">
/// The source stream to copy from.</param>
/// <param name="target">
/// The destination stream to copy to.</param>
private static void CopyStream(Stream source, Stream target)
{
const int bufSize = 0x1000;
byte[] buf = new byte[bufSize];
int bytesRead = 0;
while ((bytesRead = source.Read(buf, 0, bufSize)) > 0)
target.Write(buf, 0, bytesRead);
}// end:CopyStream()
' -------------------------- CreatePackage --------------------------
''' <summary>
''' Creates a package zip file containing specified
''' content and resource files.</summary>
Private Shared Sub CreatePackage()
' Convert system path and file names to Part URIs. In this example
' Dim partUriDocument as Uri /* /Content/Document.xml */ =
' PackUriHelper.CreatePartUri(
' New Uri("Content\Document.xml", UriKind.Relative))
' Dim partUriResource as Uri /* /Resources/Image1.jpg */ =
' PackUriHelper.CreatePartUri(
' New Uri("Resources\Image1.jpg", UriKind.Relative))
Dim partUriDocument As Uri = PackUriHelper.CreatePartUri(New Uri(documentPath, UriKind.Relative))
Dim partUriResource As Uri = PackUriHelper.CreatePartUri(New Uri(resourcePath, UriKind.Relative))
' Create the Package
' (If the package file already exists, FileMode.Create will
' automatically delete it first before creating a new one.
' The 'using' statement insures that 'package' is
' closed and disposed when it goes out of scope.)
Using package As Package = Package.Open(packagePath, FileMode.Create)
' Add the Document part to the Package
Dim packagePartDocument As PackagePart = package.CreatePart(partUriDocument, System.Net.Mime.MediaTypeNames.Text.Xml)
' Copy the data to the Document Part
Using fileStream As New FileStream(documentPath, FileMode.Open, FileAccess.Read)
CopyStream(fileStream, packagePartDocument.GetStream())
End Using ' end:using(fileStream) - Close and dispose fileStream.
' Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri, TargetMode.Internal, PackageRelationshipType)
' Add a Resource Part to the Package
Dim packagePartResource As PackagePart = package.CreatePart(partUriResource, System.Net.Mime.MediaTypeNames.Image.Jpeg)
' Copy the data to the Resource Part
Using fileStream As New FileStream(resourcePath, FileMode.Open, FileAccess.Read)
CopyStream(fileStream, packagePartResource.GetStream())
End Using ' end:using(fileStream) - Close and dispose fileStream.
' Add Relationship from the Document part to the Resource part
packagePartDocument.CreateRelationship(New Uri("../resources/image1.jpg", UriKind.Relative), TargetMode.Internal, ResourceRelationshipType)
End Using ' end:using (Package package) - Close and dispose package.
End Sub
' --------------------------- CopyStream ---------------------------
''' <summary>
''' Copies data from a source stream to a target stream.</summary>
''' <param name="source">
''' The source stream to copy from.</param>
''' <param name="target">
''' The destination stream to copy to.</param>
Private Shared Sub CopyStream(ByVal source As Stream, ByVal target As Stream)
Const bufSize As Integer = &H1000
Dim buf(bufSize - 1) As Byte
Dim bytesRead As Integer = 0
bytesRead = source.Read(buf, 0, bufSize)
Do While bytesRead > 0
target.Write(buf, 0, bytesRead)
bytesRead = source.Read(buf, 0, bufSize)
Loop
End Sub
Keterangan
Paketnya.Open metode menggunakan ZipPackage kontainer secara default.
Properti
FileOpenAccess |
Mendapatkan pengaturan akses file untuk paket. (Diperoleh dari Package) |
PackageProperties |
Mendapatkan properti inti paket. (Diperoleh dari Package) |
Metode
Close() |
Menyimpan dan menutup paket ditambah semua aliran bagian yang mendasar. (Diperoleh dari Package) |
CreatePart(Uri, String) |
Membuat bagian baru yang tidak dikompresi dengan URI dan jenis konten tertentu. (Diperoleh dari Package) |
CreatePart(Uri, String, CompressionOption) |
Membuat bagian baru dengan opsi URI, jenis konten, dan pemadatan tertentu. (Diperoleh dari Package) |
CreatePartCore(Uri, String, CompressionOption) |
Ketika ditimpa di kelas turunan, membuat bagian baru dalam paket. (Diperoleh dari Package) |
CreateRelationship(Uri, TargetMode, String) |
Membuat hubungan tingkat paket ke bagian dengan URI, mode target, dan jenis hubungan tertentu. (Diperoleh dari Package) |
CreateRelationship(Uri, TargetMode, String, String) |
Membuat hubungan tingkat paket ke bagian dengan URI, mode target, jenis hubungan, dan pengidentifikasi (ID) tertentu. (Diperoleh dari Package) |
DeletePart(Uri) |
Menghapus bagian dengan URI tertentu dari paket. (Diperoleh dari Package) |
DeletePartCore(Uri) |
Saat ditimpa di kelas turunan, menghapus bagian dengan URI tertentu. (Diperoleh dari Package) |
DeleteRelationship(String) |
Menghapus hubungan tingkat paket. (Diperoleh dari Package) |
Dispose(Boolean) |
Membersihkan dan menyimpan konten semua bagian dan hubungan, menutup paket, dan merilis semua sumber daya. (Diperoleh dari Package) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Flush() |
Menyimpan konten semua bagian dan hubungan yang terkandung dalam paket. (Diperoleh dari Package) |
FlushCore() |
Saat ditimpa di kelas turunan, menyimpan konten semua bagian dan hubungan ke penyimpanan kelas turunan. (Diperoleh dari Package) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetPart(Uri) |
Mengembalikan bagian dengan URI tertentu. (Diperoleh dari Package) |
GetPartCore(Uri) |
Saat ditimpa di kelas turunan, mengembalikan bagian yang ditangani oleh URI tertentu. (Diperoleh dari Package) |
GetParts() |
Mengembalikan kumpulan semua bagian dalam paket. (Diperoleh dari Package) |
GetPartsCore() |
Saat ditimpa di kelas turunan, mengembalikan array dari semua bagian dalam paket. (Diperoleh dari Package) |
GetRelationship(String) |
Mengembalikan hubungan tingkat paket dengan pengidentifikasi tertentu. (Diperoleh dari Package) |
GetRelationships() |
Mengembalikan kumpulan semua hubungan tingkat paket. (Diperoleh dari Package) |
GetRelationshipsByType(String) |
Mengembalikan kumpulan semua hubungan tingkat paket yang cocok dengan yang diberikan RelationshipType. (Diperoleh dari Package) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
PartExists(Uri) |
Menunjukkan apakah bagian dengan URI tertentu ada dalam paket. (Diperoleh dari Package) |
RelationshipExists(String) |
Menunjukkan apakah hubungan tingkat paket dengan ID tertentu terkandung dalam paket. (Diperoleh dari Package) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
IDisposable.Dispose() |
Anggota ini mendukung infrastruktur Windows Presentation Foundation (WPF) dan tidak dimaksudkan untuk penggunaan aplikasi. Gunakan metode type-safe Dispose(Boolean) sebagai gantinya. (Diperoleh dari Package) |