Partager via


Compression et décompression des fichiers

Les volumes du système de fichiers NTFS prennent en charge la compression de fichiers sur une base individuelle. L’algorithme de compression de fichiers utilisé par le système de fichiers NTFS est Lempel-Ziv compression. Il s’agit d’un algorithme de compression sans perte, ce qui signifie qu’aucune donnée n’est perdue lors de la compression et de la décompression du fichier, par opposition à algorithmes de compression de compression tels que JPEG, où certaines données sont perdues chaque fois que la compression et la décompression des données se produisent.

La compression des données réduit la taille d’un fichier en minimisant les données redondantes. Dans un fichier texte, les données redondantes peuvent être fréquemment des caractères, tels que le caractère d’espace ou les voyelles communes, telles que les lettres e et a ; il peut également se produire fréquemment des chaînes de caractères. La compression des données crée une version compressée d’un fichier en minimisant ces données redondantes.

Chaque type d’algorithme de compression de données réduit les données redondantes de manière unique. Par exemple, l’algorithme d’encodage Huffman affecte un code à des caractères dans un fichier en fonction de la fréquence à laquelle ces caractères se produisent. Un autre algorithme de compression, appelé encodage de longueur d’exécution, génère une valeur en deux parties pour les caractères répétés : la première partie spécifie le nombre de fois où le caractère est répété, et la deuxième partie identifie le caractère. Un autre algorithme de compression, appelé algorithme Lempel-Ziv, convertit les chaînes de longueur variable en codes de longueur fixe qui consomment moins d’espace que les chaînes d’origine.

Compression des fichiers du système de fichiers NTFS

Sur le système de fichiers NTFS, la compression est effectuée de manière transparente. Cela signifie qu’il peut être utilisé sans nécessiter de modifications apportées aux applications existantes. Les octets compressés du fichier ne sont pas accessibles aux applications ; ils voient uniquement les données non compressées. Par conséquent, les applications qui ouvrent un fichier compressé peuvent fonctionner sur celui-ci comme s’il n’était pas compressé. Toutefois, ces fichiers ne peuvent pas être copiés dans un autre système de fichiers.

Si vous compressez un fichier de plus de 30 gigaoctets, la compression risque de ne pas réussir.

Les rubriques suivantes identifient la compression des fichiers du système de fichiers NTFS :

Bibliothèques de compression et de décompression de fichiers

Les bibliothèques de compression et de décompression de fichiers prennent un fichier ou des fichiers existants et produisent un fichier ou des fichiers compressés des versions d’origine. La compression est également sans perte, mais la compression n’est pas transparente pour les applications. Une application ne peut fonctionner que sur ces fichiers à l’aide d’une bibliothèque de compression de fichiers. En outre, les seules opérations que vous pouvez effectuer sur ces fichiers créent un fichier compressé à partir d’un fichier d’origine et récupèrent les données d’origine à partir de la version décompressée. L’édition n’est généralement pas prise en charge et la recherche est limitée si elle est prise en charge du tout.

En règle générale, une application appelle des fonctions dans Lz32.dll pour décompresser les données compressées à l’aide de Compress.exe. Les fonctions peuvent également traiter les fichiers sans tenter de les décompresser.

Vous pouvez utiliser les fonctions dans Lz32.dll pour décompresser des fichiers uniques ou multiples. Vous pouvez également les utiliser pour décompresser les fichiers compressés une partie à la fois.

Les rubriques suivantes identifient la décompression de fichier fournie par les fonctions dans Lz32.dll:

Armoires

Les armoires sont créées par une bibliothèque de compression qui prend en charge des fonctionnalités telles que la compression sur disque et multi-fichiers. Pour plus d’informations, consultez le Kit de développement logiciel cabinet : https://msdn.microsoft.com/library/dncabsdk/html/cabdl.asp.

Dans cette section

Sujet Description
attribut de compression
Sur un volume de système de fichiers NTFS, chaque fichier et répertoire a un attribut de compression .
d’état de compression
Chaque fichier et répertoire d’un volume prenant en charge la compression pour les fichiers et répertoires individuels a un état de compression .
obtenir la taille d’un fichier compressé
Pour obtenir la taille compressée d’un fichier, utilisez la fonction GetCompressedFileSize.
décompresser un fichier unique
Une application peut décompresser un seul fichier compressé à l’aide des fonctions LZOpenFile, LZCopy et LZClose.
décompresser plusieurs fichiers
Une application peut décompresser plusieurs fichiers à l’aide des fonctions LZOpenFile, LZCopy et LZClose.
lecture à partir de fichiers compressés
Une application peut décompresser un fichier compressé une partie à la fois à l’aide des fonctions LZSeek et LZRead.