Kompresi dan Dekompresi File

Volume sistem file NTFS mendukung pemadatan file secara individual. Algoritma kompresi file yang digunakan oleh sistem file NTFS Lempel-Ziv pemadatan. Ini adalah algoritma kompresi tanpa kehilangan , yang berarti bahwa tidak ada data yang hilang saat mengompresi dan mendekompresi file, dibandingkan dengan algoritma kompresi yang hilang seperti JPEG, di mana beberapa data hilang setiap kali kompresi dan dekompresi data terjadi.

Pemadatan data mengurangi ukuran file dengan meminimalkan data yang berlebihan. Dalam file teks, data yang berlebihan dapat menjadi karakter yang sering terjadi, seperti karakter spasi, atau vokal umum, seperti huruf e dan a; ini juga dapat sering terjadi string karakter. Pemadatan data membuat versi terkompresi file dengan meminimalkan data redundan ini.

Setiap jenis algoritma kompresi data meminimalkan data redundan dengan cara yang unik. Misalnya, algoritma pengodean Huffman menetapkan kode ke karakter dalam file berdasarkan seberapa sering karakter tersebut terjadi. Algoritma kompresi lain, yang disebut pengodean panjang eksekusi, menghasilkan nilai dua bagian untuk karakter berulang: bagian pertama menentukan berapa kali karakter diulang, dan bagian kedua mengidentifikasi karakter. Algoritma kompresi lain, yang dikenal sebagai algoritma Lempel-Ziv, mengonversi string panjang variabel menjadi kode panjang tetap yang mengonsumsi lebih sedikit ruang daripada string asli.

Pemadatan File Sistem File NTFS

Pada sistem file NTFS, kompresi dilakukan secara transparan. Ini berarti dapat digunakan tanpa memerlukan perubahan pada aplikasi yang ada. Byte terkompresi dari file tidak dapat diakses oleh aplikasi; mereka hanya melihat data yang tidak dikompresi. Oleh karena itu, aplikasi yang membuka file terkompresi dapat beroperasi di atasnya seolah-olah tidak dikompresi. Namun, file-file ini tidak dapat disalin ke sistem file lain.

Jika Anda mengompresi file yang lebih besar dari 30 gigabyte, pemadatan mungkin tidak berhasil.

Topik berikut mengidentifikasi kompresi file sistem file NTFS:

Pustaka Kompresi dan Dekompresi File

Pustaka kompresi dan dekompresi file mengambil file atau file yang ada dan menghasilkan file atau file yang merupakan versi terkompresi dari aslinya. Pemadatannya juga tidak rugi, tetapi pemadatannya tidak transparan terhadap aplikasi. Aplikasi hanya dapat beroperasi pada file tersebut dengan bantuan pustaka kompresi file. Selain itu, satu-satunya operasi yang dapat Anda lakukan pada file tersebut adalah membuat file terkompresi dari asli dan memulihkan data asli dari versi yang didekompresi. Pengeditan biasanya tidak didukung, dan pencarian terbatas jika didukung sama sekali.

Biasanya, aplikasi memanggil fungsi di Lz32.dll untuk mendekompresi data yang dikompresi menggunakan Compress.exe. Fungsi ini juga dapat memproses file tanpa mencoba mendekompresinya.

Anda dapat menggunakan fungsi di Lz32.dll untuk mendekompresi satu atau beberapa file. Anda juga dapat menggunakannya untuk mendekompresi file terkompresi sebagian pada satu waktu.

Topik berikut mengidentifikasi dekompresi file yang disediakan oleh fungsi dalam Lz32.dll:

Lemari

Kabinet dibuat oleh pustaka kompresi yang mendukung fitur seperti rentang disk dan kompresi multi-file. Untuk informasi tambahan, lihat Kit Pengembangan Perangkat Lunak Kabinet: https://msdn.microsoft.com/library/dncabsdk/html/cabdl.asp.

Di bagian ini

Topik Deskripsi
Atribut Pemadatan
Pada volume sistem file NTFS, setiap file dan direktori memiliki atribut kompresi.
Status Pemadatan
Setiap file dan direktori pada volume yang mendukung kompresi untuk file dan direktori individual memiliki status pemadatan.
Mendapatkan Ukuran File Terkompresi
Untuk mendapatkan ukuran file yang dikompresi, gunakan fungsi GetCompressedFileSize.
Mendekompresi Satu File
Aplikasi dapat mendekompresi satu file terkompresi dengan menggunakan fungsi LZOpenFile, LZCopy, dan LZClose.
Mendekompresi Beberapa File
Aplikasi dapat mendekompresi beberapa file dengan menggunakan fungsi LZOpenFile, LZCopy, dan LZClose.
Membaca dari File Terkompresi
Aplikasi dapat mendekompresi file terkompresi sebagian pada satu waktu dengan menggunakan fungsi LZSeek dan LZRead.