Compression et décompression de fichiers

Les volumes du système de fichiers NTFS prennent en charge la compression de fichiers individuellement. 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, contrairement aux algorithmes de compression avec perte 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 réduisant les données redondantes. Dans un fichier texte, les données redondantes peuvent être des caractères fréquents, tels que le caractère d’espace, ou des voyelles communes, telles que les lettres e et a ; il peut également s’agir de chaînes de caractères fréquemment présentes. La compression des données crée une version compressée d’un fichier en réduisant ces données redondantes.

Chaque type d’algorithme de compression des données réduit les données redondantes d’une manière unique. Par exemple, l’algorithme d’encodage Huffman affecte un code aux caractères d’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 répétitions du caractère, et la deuxième partie identifie le caractère. Un autre algorithme de compression, connu sous le nom d’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 de fichiers du système de fichiers NTFS

Sur le système de fichiers NTFS, la compression est effectuée en toute transparence. Cela signifie qu’il peut être utilisé sans nécessiter de modification des 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 supérieur à 30 gigaoctets, la compression risque de ne pas réussir.

Les rubriques suivantes identifient la compression de 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 ou plusieurs fichiers existants et produisent un ou plusieurs fichiers qui sont des versions compressées des fichiers d’origine. La compression est également sans perte, mais elle n’est pas transparente pour les applications. Une application peut uniquement fonctionner sur ces fichiers avec l’aide d’une bibliothèque de compression de fichiers. En outre, les seules opérations que vous pouvez effectuer sur ces fichiers sont la création d’un fichier compressé à partir d’un original et la récupération des données d’origine à partir de la version décompressée. La modification 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 des fichiers sans tenter de les décompresser.

Vous pouvez utiliser les fonctions dans Lz32.dll pour décompresser un ou plusieurs fichiers. 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 l’extension de disque et la compression multi-fichiers. Pour plus d’informations, consultez le Kit de développement logiciel Cabinet : https://msdn.microsoft.com/library/dncabsdk/html/cabdl.asp.

Contenu de cette section

Rubrique Description
Attribut de compression
Sur un volume de système de fichiers NTFS, chaque fichier et répertoire a un attribut de compression.
État de compression
Chaque fichier et répertoire sur un volume qui prend en charge la compression des fichiers et répertoires individuels a un état de compression.
Obtention de la taille d’un fichier compressé
Pour obtenir la taille compressée d’un fichier, utilisez la fonction GetCompressedFileSize.
Décompression d’un fichier unique
Une application peut décompresser un seul fichier compressé à l’aide des fonctions LZOpenFile, LZCopy et LZClose.
Décompression de 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.