Ich schreibe eine Anwendung, die mit Satellitenbildern funktioniert, und mein Chef hat mich gebeten, mir einige der kommerziellen Anwendungen anzusehen und zu sehen, wie sie sich verhalten. Ich fand ein seltsames Verhalten und fand es dann beim Suchen auch in anderen Standardanwendungen.
Diese Programme schreiben zuerst in den temporären Ordner und kopieren ihn dann an das vorgesehene Ziel.
Beispiel: 7zip extrahiert zuerst in den temporären Ordner und kopiert dann die extrahierten Daten an den Speicherort, an den Sie sie aufgefordert haben, die Daten zu extrahieren.
Ich sehe einige Probleme mit diesem Ansatz:
Der temporäre Ordner verfügt möglicherweise nicht über genügend Speicherplatz, während der beabsichtigte Speicherort möglicherweise über so viel Speicherplatz verfügt.
Wenn es sich um eine große Datei handelt, kann der Kopiervorgang einen nicht zu vernachlässigenden Zeitraum in Anspruch nehmen.
Ich habe viel darüber nachgedacht, aber ich konnte keinen einzigen positiven Punkt dafür erkennen. Vermisse ich etwas oder hat das einen wirklichen Vorteil?
quelle
Antworten:
Ein paar Gründe, die mir einfallen:
TL; DR - Hauptsächlich geht es um Atomarität, das heißt, Sie möchten es so gestalten, dass die Datei (am endgültigen Speicherort) entweder vollständig oder zu einem bestimmten Zeitpunkt überhaupt nicht vorhanden ist.
quelle
Dies scheint ein Problem in Windows zu sein, insbesondere im Zusammenhang mit der Verwaltung von Drag & Drop.
Die Entwickler des WINSCP- Clients haben eine eigene Shell-Erweiterung entwickelt, die dieses Drag-Drop-Verhalten außer Kraft setzt und das sofortige Ablegen der Datei in den richtigen Ordner ermöglicht. Sie erklären den Trick in ihrer Dokumentation und, was noch interessanter ist, was das Problem ist und wie sie es gelöst haben.
Hier ist der interessante Teil:
Speziell für 7Zip: Der Benutzer ray023 beantwortet diese Frage im SuperUser-Stapel unter Fragen und Antworten: https://superuser.com/a/422463
Wenn Sie Ihre Datei nicht per Drag & Drop ablegen, sondern die in 7-ZIP und Winrar verfügbare Methode "Hier extrahieren" verwenden, werden die Dateien direkt in das richtige Verzeichnis extrahiert.
quelle
Wenn Sie irgendeine Art von Datenverarbeitung an der Datei vornehmen müssen (dekodieren / konvertieren / etc ..), ist es besser, eine temporäre Datei zu verwenden und das Ergebnis nach Abschluss und nur dann an das endgültige Ziel zu übertragen.
Leistungen:
Ich sehe keine wirklichen Vorteile, wenn ich während der Verarbeitung der Daten direkt an das Ziel schreibe.
quelle