HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egy állomány megjelölése a ritka fájl attribútummal


Példaprogram letöltése

3385 bájt

Egy NTFS fájlrendszeren lehetőségünk van ritka állományok használatára. Az operációs rendszer tartalmaz egy algoritmust ezeknek az állományoknak a kezelésére. Ahhoz, hogy az operációs rendszer megismerje ezeket az állományokat, nekünk meg kell jelölnünk őket a FILE_ATTRIBUTE_SPARSE_FILE attribútummal. Egy példaprogram kapcsán megnézzük mik azok a ritka állományok, és hogyan lehet őket megjelölni.

A ritka állományok csak NTFS fájlrendszer esetén használhatóak.
A ritka állományok olyan állományok, amelyek nagy mennyiségű 0 bájtokat tartalmaznak. Ezeknek az információ tartalma igen kicsi az általuk lefoglalt helyhez képest. Egy ilyen fájl lehet például egy kép, vagy egy adatbázis, amely törölt rekordokat tartalmaz.
A ritka fájlok azonosítására a FILE_ATTRIBUTE_SPARSE_FILE attribútum szolgál.
Az ilyen állományokat kezelő algoritmus az NTFS fájlrendszerrel együtt jelent meg, hogy a rendelkezésre álló helyet még takarékosabban használják fel. Amikor egy állomány a FILE_ATTRIBUTE_SPARSE_FILE attribútummal van megjelölve, akkor az operációs rendszer közvetlenül csak a nem 0 bájtokat tárolja el. A rendszer a ritka fájlok számára létrehoz egy külső listát, amelyben eltárolja a 0 bájtok helyét és számát.
Példaprogramunkban létrehozunk egy 0 bájtokat tartalmazó állományt. Az állomány létrehozásához a TFileStream osztályt használjuk. Először egy buf pointer típusú változót feltöltünk 0 értékekkel.
ZeroMemory(buf,10000000);
A buf tartalmát átmásoljuk a TFileStream-be, azaz az állományba. Ekkor létrejön a 0 bájtokat tartalmazó állományunk.
Az operációs rendszer tartalmaz egy utasítást, amellyel egy állományt megjelölhetünk a FILE_ATTRIBUTE_SPARSE_FILE attribútummal. Ez a következő:
fsutil sparse setflag Állománynév
Delphi programunkban mi is ezt a parancsot fogjuk meghívni, a ShellExecute API függvény segítségével.
ShellExecute(0,'open','fsutil',PChar('sparse setflag '+Edit1.Text),'',SW_HIDE)
A ShellExecute API függvényben külön kell megadnunk a parancsot és annak paramétereit. A függvény visszatérési értéke nagyobb, mint 32, ha lefutása sikeres volt. Ha az érték kisebb 32-nél, akkor valamilyen hiba történt a művelet végrehajtása során, ekkor a függvény visszatérési értéke a hiba kódja. A függvény használatához a uses listában fel kell sorolnunk a ShellAPI unit-ot is.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 80. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |