Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Woluminy systemu plików NTFS obsługują kompresję plików dla poszczególnych plików. Algorytm kompresji plików używany przez system plików NTFS jest Lempel-Ziv kompresji. Jest to bezstratny algorytm kompresji, co oznacza, że żadne dane nie są tracone podczas kompresowania i dekompresowania pliku, w przeciwieństwie do straty algorytmów kompresji, takich jak JPEG, gdzie niektóre dane są tracone za każdym razem, gdy występuje kompresja i dekompresja danych.
Kompresja danych zmniejsza rozmiar pliku, minimalizując nadmiarowe dane. W pliku tekstowym dane nadmiarowe mogą być często występującymi znakami, takimi jak znak spacji lub typowe śluby, takie jak litery e i a; może również często występować ciągi znaków. Kompresja danych tworzy skompresowaną wersję pliku, minimalizując te nadmiarowe dane.
Każdy typ algorytmu kompresji danych minimalizuje nadmiarowe dane w unikatowy sposób. Na przykład algorytm kodowania Huffman przypisuje kod do znaków w pliku na podstawie tego, jak często występują te znaki. Inny algorytm kompresji o nazwie kodowanie długości przebiegugeneruje dwuczęściową wartość dla powtarzających się znaków: pierwsza część określa liczbę powtórzeń znaku, a druga część identyfikuje znak. Inny algorytm kompresji, znany jako algorytm Lempel-Ziv, konwertuje ciągi o zmiennej długości na kody o stałej długości, które zużywają mniej miejsca niż oryginalne ciągi.
Kompresja pliku systemu plików NTFS
W systemie plików NTFS kompresja jest wykonywana w sposób niewidoczny. Oznacza to, że może być używany bez konieczności wprowadzania zmian w istniejących aplikacjach. Skompresowane bajty pliku nie są dostępne dla aplikacji; widzą tylko nieskompresowane dane. W związku z tym aplikacje, które otwierają skompresowany plik, mogą działać na nim tak, jakby nie zostały skompresowane. Nie można jednak skopiować tych plików do innego systemu plików.
W przypadku skompresowania pliku, który jest większy niż 30 gigabajtów, kompresja może zakończyć się niepowodzeniem.
Następujące tematy identyfikują kompresję plików systemu plików NTFS:
- atrybutu kompresji
- stanu kompresji
- uzyskiwanie rozmiaru skompresowanego pliku
Kompresja i dekompresja plików
Kompresja plików i dekompresja biblioteki przyjmują istniejący plik lub pliki i tworzą plik lub pliki, które są skompresowane wersje oryginałów. Kompresja jest również bezstratna, ale kompresja nie jest niewidoczna dla aplikacji. Aplikacja może działać tylko na takich plikach z pomocą biblioteki kompresji plików. Ponadto jedynymi operacjami, które można wykonać na takich plikach, są tworzenie skompresowanego pliku z oryginalnego i odzyskanie oryginalnych danych z dekompresowanej wersji. Edytowanie jest zwykle nieobsługiwane, a wyszukiwanie jest ograniczone, jeśli jest obsługiwane w ogóle.
Zazwyczaj aplikacja wywołuje funkcje w Lz32.dll w celu dekompresowania danych skompresowanych przy użyciu Compress.exe. Funkcje mogą również przetwarzać pliki bez próby ich dekompresowania.
Za pomocą funkcji w Lz32.dll można dekompresować pojedynczy lub wiele plików. Można ich również użyć do dekompresowania skompresowanych plików w danym momencie.
Następujące tematy identyfikują dekompresję pliku, która jest dostarczana przez funkcje w Lz32.dll:
- dekompresowanie pojedynczego pliku
- dekompresowanie wielu plików
- odczytywanie z skompresowanych plików
Szafy
Szafki są tworzone przez bibliotekę kompresji, która obsługuje funkcje, takie jak spanning dysku i kompresja wielu plików. Aby uzyskać dodatkowe informacje, zobacz Cabinet Software Development Kit: https://msdn.microsoft.com/library/dncabsdk/html/cabdl.asp.
W tej sekcji
Temat | Opis |
---|---|
atrybutu kompresji |
Na woluminie systemu plików NTFS każdy plik i katalog ma atrybut kompresji . |
stanu kompresji |
Każdy plik i katalog na woluminie, który obsługuje kompresję poszczególnych plików i katalogów, ma stan kompresji. |
uzyskiwanie rozmiaru skompresowanego pliku |
Aby uzyskać skompresowany rozmiar pliku, użyj funkcji GetCompressedFileSize. |
dekompresowanie pojedynczego pliku |
Aplikacja może dekompresować pojedynczy skompresowany plik przy użyciu funkcji LZOpenFile, LZCopy i LZClose. |
dekompresowanie wielu plików |
Aplikacja może dekompresować wiele plików przy użyciu funkcji LZOpenFile, LZCopy i LZClose. |
odczyt z skompresowanych plików |
Aplikacja może dekompresować skompresowany plik w danym momencie przy użyciu funkcji LZSeek i LZRead. |