Große bis riesige Dateien einfach splitten und wieder zusammenführen

by Wolfgang Kluge März 27, 2009 21:10

Das Tool ist zwar nun auch schon etwas älter, aber immer noch ein Post wert (ich habs grad rauskramen müssenWink).

Vor Jahren stand ich (schon mal) vor dem Problem, eine (für damalige Zeit riesige) Datei mit 50GB aufzusplitten und wieder zusammenzusetzen. Mit allen Tools die mir zur Verfügung standen, wollte es jedoch nicht so recht funktionieren (Fehler, Systemstillstand, bis hin zum Blue Screen). Nur zum Trotz (*g*) hab ich dann eine Lösung in VBScript (ja, VBS) geschrieben - und es stellte sich heraus, dass diese Lösung auch noch sehr stabil mit sehr großen Dateien funktionierte (man sagt dem WSH und VBScript nicht gerade hinterher, besonders gut mit Dateien umgehen zu können, aber so schlimm kanns nicht sein).

In der ZIP-Datei (1,77 kb) sind 2 WSH-Scripte enthalten - ksSplitFile.wsf und ksJoinFile.wsf. Der Aufruf ist genauso einfach wie die Scripte und mindestens genauso selbsterklärend wie deren Namen selbst.

Aufteilen einer Datei

ksSplitFile.wsf trennt eine beliebige Datei in kleinere Brocken. Wie groß diese Brocken sind, kann festgelegt werden - voreingestellt sind 15 MB.

ksSplitFile.wsf "filename" [chunksize=15]
  filename ist dabei der Pfad zur Datei und
  chunksize die Größe der Brocken in MB

Sieht man vom Auslesen ab, bleibt die Originaldatei unangetastet ;). Die Einzelteile werden in einen Unterordner "CHUNKED_" + Namen im gleichen Verzeichnis abgelegt - liegt die zu splittende Datei "SplitTest.txt" auf dem Desktop, so wird dort auch ein neuer Ordner mit dem Namen "CHUNKED_SplitTest.txt" angelegt. Ist ein solcher Ordner bereits vorhanden, wird zusätzlich noch eine Zahl hinten angehängt.

Die Größe der Einzelteile hab ich übrigens auf 100MB begrenzt. Die Obergrenze ist mehr oder weniger willkürlich dazugekommen (zwischen 15 und 100 MB wars einfach am "schönsten" - zumindest aus damaliger Perfromance-Sicht). Unter 15 MB lohnt es sich meiner Meinung nach nicht (aber es steht natürlich jedem offen, dies zu ändern).

Zusammenführen zu einer Datei

Zurück geht es ähnlich einfach. Mit der Datei ksJoinFile.wsf werden die Einzelteile wieder zu einem großen Ganzen zusammengefügt.

ksJoinFile.wsf "path"
  path ist der Pfad zum CHUNKED_ - Ordner

Die hierbei erstellte Datei heißt so, wie der Ordner. Gibt es eine solche Datei bereits, wird wieder eine Zahl hinten angehängt.

100 GB brauchen natürlich ihre Zeit, aber es geht (dann würde ich allerdings die "Brocken" größer als 15 MB halten) ;) Ob es eine Obergenze gibt, und wann diese dann erreicht wäre - ich weiß es nicht ;) Eventuell bereichtet es mir einer...

Download (1,77 kb)

Tags: , ,

Tools

Kommentare

Kommentare sind geschlossen

Powered by BlogEngine.NET 1.6.1.6
Theme by Mads Kristensen | Modified by Mooglegiant and me ;)