Ich habe vor kurzem an einer App in VBA gearbeitet, die auf einigen Dateien beruht, die in der .docm-Datei des Dokuments selbst enthalten sind. Anfangs verwendete ich die komprimierte Windows XP-Ordnerfunktion, um den Inhalt des Dokuments programmgesteuert zu extrahieren. Dies war eine optimale Lösung, da es in allen Windows XP integriert ist, für die es verwendet wird und daher keine Installation erforderlich ist. Allerdings habe ich einen Haken gefunden: Es scheint, dass, nachdem ich das Dokument eine bestimmte Anzahl von Malen extrahiert habe, beginnt es mit der Fehlermeldung "Fehler, diese Datei existiert bereits". Anfangs dachte ich, dass ich etwas kaputt gemacht und etwas tiefer gegraben habe, es stellte sich heraus, dass es keinen Fehler in meinem Code gab, sondern einen Bug im komprimierten Ordner.Wie implementiere ich Zip-Funktionalität in VBA?
Wenn der Fehler "Datei existiert bereits" in einer bestimmten ZIP-Datei auf Ihrem System angezeigt wird, funktioniert Compressed Folder nicht mehr bei ANY-Datei mit demselben Namen. Wenn Sie diese Datei umbenennen, beginnt sie wieder zu arbeiten. Hier ist meine Frage: Wie kann ich Zip-Fähigkeit in VBA ohne komprimierte Ordner implementieren? Bonusfrage: Wie kann ich komprimierte Ordner reparieren?
Danke für Ihre Zeit.
-Seamus
Update: Zur Zeit habe ich es Compressed Folders arbeiten mit, arbeite ich, um den Fehler, indem Sie die Datei auf etwas Neues jedes Mal Umbenennung geschieht der Fehler. Das funktioniert OK, aber ich suche eher nach einer Lösung als nach einem Hack um das Problem herum.
Das ist eigentlich was ich jetzt mache, aber es ist ein bisschen suboptimal, weil ich zufällig den neuen Dateinamen erzeugen muss, der mir schlecht riecht. –
Ein völlig zufälliger Dateiname riecht in der Tat schlecht. Könnten Sie nicht einfach den Dateinamen mit einer fortlaufenden Nummer erweitern, während Sie nach einer bereits vorhandenen Datei mit dem Namen suchen? – DaClown