Megosztás a következőn keresztül:


Ritka fájlműveletek

Annak megállapításához, hogy egy fájlrendszer támogatja-e a ritka fájlokat, hívja meg a GetVolumeInformation függvényt, és vizsgálja meg a lpFileSystemFlags paraméteren keresztül visszaadott FILE_SUPPORTS_SPARSE_FILES bitjelzőt.

A legtöbb alkalmazás nem ismeri a ritkán használt fájlokat, és nem hoz létre ritka fájlokat. Az a tény, hogy egy alkalmazás ritka fájlokat olvas, transzparens az alkalmazás számára. A ritka fájlokat ismerő alkalmazásoknak meg kell határozniuk, hogy az adatkészlete alkalmas-e ritka fájlokban való tartására. A meghatározást követően az alkalmazásnak kifejezetten ritkának kell deklarálnia egy fájlt a FSCTL_SET_SPARSE vezérlőkód használatával.

Miután egy alkalmazás ritkának állított be egy fájlt, az alkalmazás a FSCTL_SET_ZERO_DATA vezérlőkóddal nullára állíthatja a fájl egy régióját. Emellett az alkalmazás a FSCTL_QUERY_ALLOCATED_RANGES vezérlőkóddal felgyorsíthatja a ritka fájlban lévő nemero adatok keresését.

Ha olyan írási műveletet hajt végre (FSCTL_SET_ZERO_DATAkivételével), amelynek az adatai csak nullákból állnak, a rendszer nullákat ír a lemezre az írás teljes hosszában. A fájltartomány nullázásához és a ritkaság fenntartásához használja a FSCTL_SET_ZERO_DATA.

A ritkaságérzékeny alkalmazások egy meglévő fájlt is ritkának állíthatnak be. Ha egy alkalmazás egy meglévő fájlt ritkának állít be, akkor a fájlban olyan régiókat kell keresnie, amelyek nullákat tartalmaznak, és a FSCTL_SET_ZERO_DATA használatával alaphelyzetbe állíthatja ezeket a régiókat, és ezáltal felszabadíthat néhány fizikai lemeztárolót. A ritka fájlfelismerésre frissített alkalmazásnak végre kell hajtania ezt a konvertálást.

Ha olvasási műveletet hajt végre egy ritka fájl nullázott részéből, előfordulhat, hogy az operációs rendszer nem olvas be a merevlemez-meghajtóról. Ehelyett a rendszer felismeri, hogy az olvasni kívánt fájlrész nullákat tartalmaz, és nullákkal teli puffert ad vissza anélkül, hogy ténylegesen beolvassa a lemezről.

Mint minden más fájlnál, a rendszer adatokat írhat vagy olvashat be a ritka fájlok bármely helyére. A fájl egy korábban nullázott részére írt nemero adatok lemezterület lefoglalását eredményezhetik. A nonzero adatokon (csak FSCTL_SET_ZERO_DATA) írt nullák lemezterület felszabadítását eredményezhetik.

Jegyzet

Az alkalmazáson múlik, hogy megtartsa a ritkulást, ha nullákat ír a FSCTL_SET_ZERO_DATA.

 

Az NTFS fájlrendszereken tömörített fájlokat kezelő töredezettségmentesítési eszközök megfelelően kezelik az NTFS fájlrendszer-köteteken lévő ritka fájlokat. A nagyméretű és erősen töredezett ritka fájlok túlléphetik a lemezterület ntfs-korlátozását a rendelkezésre álló terület használata előtt.