Morschn,
beim weiteren Rumspielen mit ReadFileScatter/WriteFileGather ist unter Anderem auch noch dieses Programm rausgekommen.
Hier gibt es auch mal was zum Schreiben (WriteFileGather) ^^
Es ist sozusagen ein FileSplitter ... nocheiner
allerdings mal als sowas wie 'ne Konsolen-Anwendung mit MiniGUI.
'n Einblick in die möglichen Parameter:
Code:
FileSplitter -? // Hilfe
FileSplitter -s "abc.def" mb100 // Datei in 100MB-Stückchen zerlegen
FileSplitter -c "abc.def.part1" // Dateien wieder zusammensetzen
FileSplitter //
GUI
Ohne Parameter und bei Falscheingaben kommen 2 bis 3 kleine Dialoge zur Parametereingabe.
In den Dialogen und per -? bekommt man natürlich Infos zu den einzelnen Parametern.
Und ja ich weiß ... für die Programmgröße wäre eine Abschaffung der Units SysUtils und Dialogs nicht schlecht.
Mal sehn, ob ich micn mal dazu durchringen kann diese abzuschaffen ... falls es jemand für nötig hällt. ._.
Eine Prozesanzeige fehlt und auf Resourcenschutzblöcke, sowie eine ordnungsgemäße Freigabe bei "Fehlern" wurde bewußt verzichtet,
da sich
WinNT+ (NT4 2K XP Vista) ja auch schon so hervorragend um alle nötigen Dinge kümmert.
So, aber nun nochmal zu ein paar Besonderheiten und anderer Infos:
- Zieldateiname wird aus der Quelldatei erzeugt
- Zielverzeichnis entspricht dem Quellverzeichnis
- SplitSize wird auf ein vielfaches der Sektor-Größe aufgerundet (meißt 512 Byte-Schritte)
der Code würde sonst, auf Grund des NonCached-Read/Write, wesendlich aufwendiger werden müssen
- Datum (LastWrite) und Attribute werden jeweils von der/den Ausgangsdatei(en) übernommen
diese Daten gehen also nicht verloren
- keine Fortschritsanzeige
Ob das Programm noch läuft sieht man (nur) an den sich veränderten Dateien und im TaskManager,
aber das Programmende wird entweder durch die Statistik, oder eine Exception angezeigt.
- Registryeinträge, INIs, oder Ähnliches gibt es nicht
- es wird mindestens Windows NT 4.0 SP2 benötigt
siehe Requirements unter ReadFileScatter
zum QuellCode:
- Kommentare gibt's kaum
- 's ist vermutlich dennoch übersichtlich,
vorallem da auf alles Überflüßig und Unnötige verzichtet wurde
ansonsten ist der relevante Code recht kurz - abgesehn von den Prüfungen der Eingabeparameter...
- ReadFileScatter und WriteFileGather zählen angeblich mit zu den schnellsten Dateiopperationen,
wenn das stimmt, dann sollte dies der wohl schnellste FileSplitter sein
- als Schreib-/Lesepuffer wurden mehrere aufeinanderfolgende Speicherblöcke verwendet, welche als Ganzes reserviert und dann Stückchenweise zugeordnet wurden
- Resourcenschutzblöcke und Dergleichen fehlen,
sind aber für diese Art von Programm nicht nötig (Windows kümmert sich darum)
dennoch solltet ihr in euren Programmen soetwas vorsehen, jedenfalls wenn ihr nicht wißt wie sich Windows verhält
Falls noch Fragen offen sind oder Fehler auftreten, dann meldet euch einfach.
Ansonsten scheint das Programm bis jetzt fehlerfrei zu funktionieren.
PS: das Programm ist, auch wenn ich vermutlich irgendwann daran noch etwas weiterentwickle,
nicht wirklich für einen "Großeinsatz" gedacht ... vielmehr soll/kann es als Demo für die Verwendung von
ReadFileScatter und
WriteFileGather diehnen.
Darum wird es vermutlich auch niemals mit so'ner schönen GUI wie bei den anderen FileSplittern ausgestattet