Open-Methode (String)
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

Package.Open-Methode (String)

Aktualisiert: November 2007

Öffnet ein Paket mit einem angegebenen Pfad und Dateinamen.

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)

public static Package Open(
	string path
)
public static Package Open(
	String path
)
public static function Open(
	path : String
) : Package
Sie können diese Methoden nicht in XAML verwenden.

Parameter

path
Typ: System.String
Der Pfad und Dateiname des Pakets.

Rückgabewert

Typ: System.IO.Packaging.Package
Das geöffnete Paket.

AusnahmeBedingung
ArgumentNullException

path ist null.

ZipPackage ist der Standardpakettyp, der von der Open-Methode verwendet wird.

Die Open-Methode öffnet das Paket mit den Standardattributen OpenOrCreate, ReadWrite und None (um andere Attribute anzugeben, verwenden Sie eine der anderen Überladungen der Open-Methode).

Weitere Informationen finden Sie in der OPC (Open Packaging Conventions)-Spezifikation, die unter http://go.microsoft.com/fwlink/?LinkID=71255 heruntergeladen werden kann.

Im folgenden Beispiel wird gezeigt, wie ein neues Package erstellt wird, das PackageRelationship-Elemente und PackagePart-Elemente gemeinsam mit gespeicherten Daten umfasst. Das vollständige Beispiel finden Sie unter Beispiel für das Schreiben eines Pakets.

//  -------------------------- 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()


Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2016 Microsoft