AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Windows.CreateFile() ohne Kompression

Ein Thema von Schwedenbitter · begonnen am 20. Mai 2011 · letzter Beitrag vom 20. Mai 2011
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#3

AW: Windows.CreateFile() ohne Kompression

  Alt 20. Mai 2011, 10:06
Sowas wie Komprimierung, Verschlüsselung, ReparsePoint und SparseFile sind nunmal keine Dateiattribute, sondern Zustandsmarker.
Diese lassen sich also nicht einfach so als attribute setzen.

DeviceIoControl + FSCTL_SET_COMPRESSION

PS: Gegenüber Zip und Co. ist diese Art der Compression garnicht so langsam wie sie aussieht.

Bei der Compression wird die Datei in kleine Stücke zerlegt und diese Teile einzeln komprimiert. Zum Schluß werden diese Teile als SparseFile abgespeichert, also logisch gesehn liegen diese Teile an der selben Dateiposition, wie die unkomprimierten Teile, nur daß zwischendurch ein paar Stücken fehlen (nur logisch und nicht physisch auf der Platte liegen), so daß man überall in der Datei lesen und schreiben kann, ohne die ganze Datei umkomprimieren zu müssen.

PS: Vor dem Anlegen der Datei dem Ordner/Partition das CompressionFlag entnehmen, denn ist der Ordner komprimiert, dann werden Dateien standardmäßig auch komprimiert.
Ansonsten: Datei erstellen (0 Byte), Komprimierung ändern und dann füllen.

Ach ja, NTFS schafft noch ein paar TB.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (20. Mai 2011 um 10:14 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 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