Ich habe in letzter Zeit ähnliches getan. Aber ich benutze ein externes Tool namens DDFGenerator. Es ist kostenlos und klein und es verarbeitet lange Dateinamen richtig.
Um strukturierte Ordner und Dateien mit makecab.exe zu komprimieren, ist eine DDF-Datei ein Muss. Anstatt das Batch-Skript zu verwenden, das in der von Ihnen zitierten Antwort erwähnt wurde, habe ich DDFGenerator für dasselbe Ziel verwendet.
DDFGenerator on CodePlex
Say, der Ordner, den Sie "zip" wollen lokalisiert in C: \ MyFolder \ MyData, verwenden Sie diesen Befehl, um eine DDF-Datei namens "solution.ddf" bei C zu erzeugen: \ MyFolder:
DDFGenerator "C:\MyFolder"
Beachten Sie, dass DDFGenerator.exe Dateien iterieren „unter“ den Ordner, den Sie, so zu komprimieren C lautet: „: \ MyFolder C“, um es und stellen Sie sicher, MyData das einzige Element ist in \ MyFolder \ MyData, sollten Sie passieren C: \ MeinFolder.
Nachdem die solution.ddf erstellt wurde, ist eine kleine Optimierung notwendig. Öffnen Sie einfach die „solution.ddf“ mit einem beliebigen Texteditor Sie bevorzugen und diese Änderungen vornehmen:
Ersetzen Sie diese zwei Zeilen (am Anfang):
.Set DiskDirectoryTemplate=CDROM
.Set CompressionType=MSZIP
sein:
.Set CabinetName1={YourCabName}.cab
.Set CompressionType=LZX
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
(Ersetzen Sie {YourCabName} nach Ihren Wünschen) Diese Änderungen gewährleisten kein Splitting und eine bessere Kompressionsrate.
Dann die makecab Befehl an C laufen: \ MyFolder die Kabine zu bauen:
makecab.exe /F solution.ddf
Der {YourCabName} CAB unter C werden: \ MyFolder \ disk1 nach getan. Nimm es einfach und lösche andere Dateien, die erzeugt wurden.
Um die Kabine im Strompfad "entpacken", verwenden Sie den Befehl:
expand {YourCabName}.cab /F:* .
PS. Ich bin ein Neuling auf stackoverflow und kann keinen Kommentar zum obigen Beitrag hinzufügen. Kann mir jemand dabei helfen? – NickOSU