Komprese a dekomprese souborů
Svazky systému souborů NTFS podporují kompresi souborů na jednotlivých souborech. Algoritmus komprese souborů používaný systémem souborů NTFS je Lempel-Ziv kompresi. Jedná se o bezeztrátový algoritmus komprese, což znamená, že při komprimaci a dekomprimaci souboru nedojde ke ztrátě algoritmů komprese, jako je JPEG, kde se některá data ztratí při každé kompresi a dekompresi dat.
Komprese dat zmenšuje velikost souboru minimalizací redundantních dat. V textovém souboru můžou redundantní data často nabývat znaků, jako je znak mezery nebo běžná samohláska, například písmena e a a; může se také často vyskytovat řetězce znaků. Komprese dat vytvoří komprimovanou verzi souboru minimalizací těchto redundantních dat.
Každý typ algoritmu komprese dat minimalizuje redundantní data jedinečným způsobem. Například algoritmus kódování Huffman přiřadí kód znakům v souboru na základě toho, jak často k těmto znakům dochází. Jiný algoritmus komprese, který se nazývá kódování délky spuštění, generuje hodnotu dvoudílné pro opakované znaky: první část určuje, kolikrát se znak opakuje, a druhá část identifikuje znak. Jiný algoritmus komprese, označovaný jako algoritmus Lempel-Ziv, převádí řetězce s proměnnou délkou na kódy s pevnou délkou, které spotřebovávají méně místa než původní řetězce.
Komprese souborů systému souborů NTFS
V systému souborů NTFS se komprese provádí transparentně. To znamená, že se dá použít bez nutnosti změn stávajících aplikací. Komprimované bajty souboru nejsou přístupné aplikacím; vidí jenom nekomprimovaná data. Aplikace, které otevřou komprimovaný soubor, s ním mohou pracovat, jako by nebyly komprimované. Tyto soubory však nelze zkopírovat do jiného systému souborů.
Pokud komprimujete soubor, který je větší než 30 gigabajtů, komprese nemusí být úspěšná.
Následující témata identifikují kompresi souborů systému souborů NTFS:
Komprese souborů a dekomprese knihoven
Komprese a dekomprese knihoven souborů přebírají existující soubor nebo soubory a vytvoří soubor nebo soubory, které jsou komprimované verze originálů. Komprese je také bezeztrátová, ale komprese není pro aplikace transparentní. Aplikace může pracovat pouze s těmito soubory s pomocí knihovny komprese souborů. Kromě toho jediné operace, které můžete s těmito soubory provádět, vytváří komprimovaný soubor z původního souboru a obnovuje původní data z dekompresované verze. Úpravy se obvykle nepodporují a hledání je omezené, pokud je vůbec podporováno.
Aplikace obvykle volá funkce v Lz32.dll k dekomprimaci dat komprimovaných pomocí Compress.exe. Funkce mohou také zpracovávat soubory, aniž by se je pokusily dekomprimovat.
Funkce v Lz32.dll můžete použít k dekomprimování jednoho nebo více souborů. Můžete je také použít k dekomprimaci komprimovaných souborů najednou.
Následující témata identifikují dekompresi souboru poskytované funkcemi v Lz32.dll:
Kabinety
Komprimační knihovna vytváří komprimační knihovnu, která podporuje funkce, jako je například přeskakování disků a komprese více souborů. Další informace naleznete v souboru Cab Software Development Kit: https://msdn.microsoft.com/library/dncabsdk/html/cabdl.asp.
V této části
Námět | Popis |
---|---|
atributu komprese |
Na svazku systému souborů NTFS má každý soubor a adresář atribut komprese. |
stavu komprese |
Každý soubor a adresář na svazku, který podporuje kompresi jednotlivých souborů a adresářů, má stav komprese. |
získání velikosti komprimovaného souboru |
K získání komprimované velikosti souboru použijte funkci GetCompressedFileSize. |
dekomprese jednoho souboru |
Aplikace může dekomprimovat jeden komprimovaný soubor pomocí funkcí LZOpenFile, LZCopy a LZClose. |
dekomprese více souborů |
Aplikace může dekomprimovat více souborů pomocí funkcí LZOpenFile, LZCopy a LZClose. |
čtení z komprimovaných souborů |
Aplikace může dekomprimovat komprimovaný soubor najednou pomocí funkcí LZSeek a LZRead. |