Announcement

Collapse
No announcement yet.

Freigabe der Datei nach Benutzung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Freigabe der Datei nach Benutzung

    Guten Tag,

    irgendwie steh ich auf dem Schlauch. Ich schreibe ein FlowDocument in eine XPS Datei, mit folgenden Code

    Code:
     using (Package package = Package.Open(path, FileMode.Create))
                {
                    using (var xpsDoc = new XpsDocument(
                        package, CompressionOption.Maximum))
                    {
                        var xpsSm = new XpsSerializationManager(
                            new XpsPackagingPolicy(xpsDoc), false);
                        DocumentPaginator dp =
                            ((IDocumentPaginatorSource) document).DocumentPaginator;
                        xpsSm.SaveAsXaml(dp);
                        xpsDoc.Close();
                    }
    
                    package.Close();
                }
                GC.Collect();
    Beim erstenmal funktioniert das, beim zweiten Mal kommt aber die Exception dass die Datei von einem anderen Prozess schon benutzt wird. Irgendwie komme ich nicht weiter. Durch den Using-Block wird doch Dispose ausgelöst und durch Close() die Sachen geschlossen, muss ich noch irgendwas freigeben,damit ich die datei nutzen kann? Hoffe ihr könnt mir weiterhelfen!
    mfg Daniel

  • #2
    Schau mal hier:

    http://stackoverflow.com/questions/1...source-xps-doc

    Die schreiben dass man das Package aus dem PackageStore entfernen muss, sonst kann man es später nicht mehr aufmachen. Das könnte vielleicht auch Dein Problem sein btw eine halbe Minute auf google

    Comment


    • #3
      Danke für den Linktipp, den kannte ich schon und dachte dass das bei mir nicht funktioniert. Aber wenn mann es an der falschen Stelle einfügt kann das auch nicht funktionieren. Die oben stehende Methode ist okay, allerding muss ich im PrintViewModel wo ich ja auf den Pfad zugreife, die Datei freigeben nach dem ich sie ausgelesen habe, da sollte man natürlich dran denken

      Danke!

      Comment


      • #4
        Ich immer mit meinen bösartigen Unterstellungen dass die Leute nicht googlen *lach* aber schön dass Du nochmal geantwortet und Deine Lösung erklärt hast

        Schöne Zeit!!!

        Comment

        Working...
        X