![]() |
AW: Dateiinhalt teilweise löschen
Du könntest eine kleine FAT in dein Format einbauen, und zu löschenden Speicher einfach als "nicht belegt" markieren. Sobald dann wieder was geschrieben wird, kommt das in die "freien Bereiche", ggf. auch fragmentiert. Dabei wird nach Löschen das Archiv allerdings nicht kleiner, dafür ließe sich dann aber eine Service-Option machen, die auf Wunsch defragmentiert und zusammenschiebt wenn Zeit dafür ist.
Edit: Holy Bananasplit! Ich war ja NOCH lahmer. Verfluchtes Telefon =) |
AW: Dateiinhalt teilweise löschen
Genau jenes haben wir (ich und Björn (olee?)) realisiert. Such mal nach VPHD
Edit: Ich hab dann meine Variante nicht veröffentlicht, da es ja im Kern dasselbe ist... |
AW: Dateiinhalt teilweise löschen
Zitat:
Zitat:
Normalerweise wäre der erste Schritt die "Verzeichniseinträge" zu löschen, also die Verweise auf Daten im Archiv. Danach könntest du verwaiste Daten in einem Rutsch löschen und das Archiv neu aufbauen. Sprich: unter normalen Umständen entfernst du nur den Verweis. Alle paar x-Male oder wenn eine bestimmte Kenngröße erreicht ist, rekonstruierst du das Archiv ohne die verwaisten Daten und hast so ein konsolidiertes Archiv. Beispiele für Programme die das so machen sind Mailprogramme ala Thunderbird ("Verzeichnis komprimieren") und TrueImage ("Backuparchiv konsolidieren"). |
AW: Dateiinhalt teilweise löschen
Zur Datei wird nur der Startcluster und die Dateigröße gespeichert.
und über das VolumeBitmap (so nennt es sich in NTFS, bzw. über die FAT/FileAllocationTable beim FAT) werden dann die nachfolgenden Cluster verlinkt. Bei jedem Clustereintrag steht dann entweder das nächste Cluster, eine virtueller Cluster (die Endemarkierung) oder eine 0 (ungenutzer Cluster) drin. Da nirgendwo eine Byteposition gespeichert wurde, erklärt es sich von selber, daß man Cluster nur komplett nutzen kann. (bis auf das Ende des letzen Clusters) Anders ist das eben bei den Sparse Files und den Compressed Files, wo auch noch die Größe der einzelnen Blöcke gespeichert wird. |
AW: Dateiinhalt teilweise löschen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz