Laden...

Generierte .docx-File nach ZipFile nicht von Word2007 lesbar

Erstellt von Astalav vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.520 Views
A
Astalav Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren
Generierte .docx-File nach ZipFile nicht von Word2007 lesbar

Guten Tag,

Ich habe momentan das Problem, dass ich in C# eine .docx-File generieren lassen möchte.

Dazu habe ich eine leere Word-Datei gespeichert und entzippt und lasse jetzt mein C#-Programm genause diese Struktur 1:1 nachbauen, was auch alles soweit wunderbar klappt.

Nehme ich nun manuell meine Ordner-Struktur und füge diese in einen von von mir auch manuell erzeugten "Zip-Komprimierten Ordner" von Windows ein und ändere die Dateiendung zu ".docx" lässt sich die Datei problemlos von Word öffnen und auslesen.

Wenn ich nun aber die Ordnerstruktur mit folgendem Code zippe, ist dies nichtmehr möglich, und Word zeigt mir ein leeres Dokument:


private bool zipFile(string pStrFileName)
        {
            try
            {
                ZipFile.CreateFromDirectory(Application.StartupPath + "\\" +   pStrFileName, 
                                                          Application.StartupPath + "\\" + pStrFileName + ".zip", 
                                                          CompressionLevel.Optimal, 
                                                          false, Encoding.UTF8);
                return true;
            }
            catch (Exception)
            {
                MessageBox.Show("Error occured while zipping folder " + pStrFileName, "ERROR");
                return false;
            }
        }

Ich habe auch schon alle CompressionLevel durchgetestet, es macht keinen unterschied.
Jemand zufällig ne Idee, wie ich die Ordnerstruktur automatisiert zippen kann, sodass ich die Datei danach mit Word lesen kann?^^

MfG
Asta

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo Astalav,

gibt es einen Grund, warum du das so umständlich machst und nicht die OpenXmlSdk verwendest um docx zu erstellen?

Beispiel

Gruss

Coffeebean

A
Astalav Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren

Hi Coffeebean,

zum einen ist der Grund, dass ich ich von der OpenXmlSdk erst erfahren habe bzw. diese Möglichkeit erst entdeckt habe, als ich bei Google nach meinem zipping-Problem gesucht habe und mich nun doch der Anreitz, dass das Programm einzig am zippen scheitert doch noch auf diesem Pfad wandeln lässt.

Außerdem wäre noch der Grund, das ich hier leider an einem Rechner sitze, an dem ich die SDK nicht problemlos downloaden könnte.

MfG
Asta

16.842 Beiträge seit 2008
vor 9 Jahren

Naja; was Du halt machst ist nicht im Sinne des Erfinders.
Du wirst vermutlich die Content- oder Head-Informationen zerstören und damit ist das docx unbrauchbar.

Du solltest also wirklich das OpenSDK verwenden; dazu ist es da.
Es gibt mittlerweile USB-Sticks, auf denen man Daten auf PC1 speichern und auf PC2 übertragen kann. Damit lassen sich selbst SDKs installieren, die sonst nur übers Internet abrufbar sind.