Ich erstelle einen binären Editor für einige sehr große Binärdateien. Eine der Softwareanforderungen besteht darin, dass der Editor die ursprüngliche Datei nicht ändern kann, sodass die Zieldatei eine bearbeitete Kopie des Originals sein muss.Ein Transaktionsmodell zum Bearbeiten großer Binärdateien
Ich möchte den Editor so gestalten, dass das Kopieren der Datei nur einmal erfolgt (es wird ein 20-minütiger Prozess). Ich weiß, dass ich die Datei während der Bearbeitung sperren kann, aber wenn der Benutzer das Programm beendet, müssen sie den gesamten 20-minütigen Kopiervorgang noch einmal durchlaufen, es sei denn, ich finde einen Weg, um festzustellen, dass sie noch da sind ihre ursprüngliche Bearbeitungssitzung.
Gibt es einen einfachen Prozess, den Sie sich vorstellen können, mit dem ich dem Benutzer erlauben kann, die kopierte Datei irgendwie als editierbare Datei zu registrieren, und wenn sie mit all ihren Änderungen abgeschlossen sind, "finalisieren" Sie die Datei?
Idealerweise ein solcher Prozess würde mich erlauben erkennen, ob die editierbare Datei oder die Transaktionsinformationen mit in-zwischen Bearbeitungssitzungen (Manipulation oder Finalisierung verursachen würde eine weitere Kopie auftreten manipuliert wurde, wenn die Datei wieder bearbeitet).
Danke. Es stellt sich heraus, dass das binäre Dateiformat ein Flag enthält, das anzeigt, ob es sich um eine Kopie handelt, also werde ich einfach dieses Flag umdrehen. –
Ist das nicht etwas, das manipuliert werden könnte? –
Ja, aber es ist Teil der Dateispezifikation und ich werde nicht zulassen, dass sie es in meinem Editor bearbeiten. –