T: Obsługa długich nazw.

Nazwy plików w systemie Windows XP mogą mieć długość do 255 znaków, mogą też zawierać spacje, kropki oraz inne znaki specjalne, które są zabronione w nazwach MS-DOS. System Windows XP umożliwia innym systemom operacyjnym korzystanie z plików posiadających długie nazwy, automatycznie generując nazwy skrócone w standardzie 8.3. Dzięki temu pliki są dostępne za pośrednictwem sieci dla komputerów używających systemów MS-DOS lub Windows 3.x, jak również Windows 95, Windows 98, Windows NT oraz Windows 2000.

Tworząc nazwy plików w formacie 8.3, system Windows XP umożliwia także aplikacjom MS-DOS oraz Windows 3.x rozpoznawanie i ładowanie plików, które posiadają długie nazwy. Dodatkowo, jeżeli aplikacja zapisuje plik w komputerze używającym systemu Windows 2000, to zachowywane są obie nazwy: w formacie 8.3 oraz długa (LFN).

Jeżeli długa nazwa pliku lub folderu zawiera spacje, to korzystając z niej należy otoczyć ją znakami cudzysłowu. Znaków cudzysłowu należy używać także w przypadku każdego zestawu długich nazw, gdy ścieżka wpisana w wierszu poleceń zawiera spacje, jak w poniższym przykładzie:

Zadanie1:
Zapoznaj się z informacjami publikowanymi na stronie:

W połączeniu z poleceniami del oraz copy należy ostrożnie używać symboli wieloznacznych (gwiazdka [*] oraz znak zapytania [?]). System Windows 2000 przegląda zarówno długie jak i krótkie nazwy plików, szukając nazw odpowiadających symbolowi wieloznacznemu. Może to spowodować, że dodatkowe i niepożądane pliki zostaną usunięte lub skopiowane. Dobrym zwyczajem jest uruchomienie w pierwszej kolejności polecenia dir, podając jako jego parametr wybraną nazwę pliku. Pozwala to upewnić się, czy wykonywane polecenie wpłynie jedynie na te pliki, które użytkownik zamierza usunąć lub skopiować.

W systemie Windows 2000 zarówno FAT, jak i NTFS używają zestawu znaków Unicode do zapisywania nazw plików. Zestaw ten zawiera pewne zabronione znaki, których system MS-DOS nie może odczytywać. W celu utworzenia czytelnej dla systemu MS-DOS nazwy skróconej, system Windows 2000 usuwa z długiej nazwy wszystkie spacje i znaki specjalne. Ponieważ nazwy MS-DOS mogą zawierać tylko jedną kropkę, to system Windows 2000 usuwa z nazwy także wszystkie dodatkowe kropki. Następnie, w razie potrzeby system Windows 2000 obcina nazwę pliku do sześciu znaków i dodaje znak tyldy (~) oraz cyfrę. Każda nie powtórzona nazwa pliku jest kończona znakami typu ~1. Zduplikowane nazwy plików kończą się znakami ~2, następnie ~3 itd. Po obcięciu nazw plików ich rozszerzenia są obcinane do trzech znaków. Na koniec, podczas wyświetlania nazw plików w wierszu poleceń, system Windows 2000 przekształca wszystkie litery w nazwie i rozszerzeniu na wielkie.

Uwaga Można zezwolić na występowanie rozszerzonych znaków w nazwach 8.3 ustawiając wartość wpisu NtfsAllowExtendedCharacterIn8dot3Name w rejestrze (klucz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem) na 1.

Można wyłączyć tworzenie skróconych nazw plików. Domyślnie NTFS generuje nazwy plików składające się z ośmiu znaków, kropki i trójznakowego rozszerzenia. Nazwy te są tworzone dla zachowania zgodności z klientami używającymi systemów MS-DOS i Windows 3.x. Jeżeli klienci używający tych systemów nie są obsługiwani, to tworzenie nazw skróconych można wyłączyć zmieniając na 1 wartość wpisu NtfsDisable8dot3NameCreation w rejestrze (klucz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Filesystem).

Ostrzeżenie Nie należy używać bezpośrednio edytora rejestru do momentu, gdy nie pozostaje żadne inne wyjście. Edytory rejestru omijają standardowe środki bezpieczeństwa zapewniane przez narzędzia administracyjne. Zabezpieczenia te zapobiegają wprowadzeniu sprzecznych, mogących zmniejszyć wydajność systemu lub uszkodzić go ustawień. Edycja rejestru może skutkować poważnymi i niespodziewanymi konsekwencjami, prowadzącymi nawet do zablokowania rozruchu systemu i konieczności ponownej jego instalacji. Aby konfigurować lub dostosowywać system Windows 2000 należy używać programów w Panelu Sterowania lub Microsoft Management Console (MMC), jeśli tylko jest to możliwe.

Gdy w folderze istnieje pięć lub więcej plików, które mogą dawać zduplikowane nazwy skrócone, to system Windows 2000 korzysta z nieznacznie zmienionej metody tworzenia nazw skróconych. W przypadku piątego i kolejnych plików, system Windows 2000:

Metoda ta zwiększa wydajność w przypadku, gdy system Windows 2000 musi utworzyć nazwy skrócone dla dużej ilości plików o podobnych nazwach długich. System korzysta z niej do tworzenia nazw skróconych zarówno w woluminach FAT, jak i NTFS.

Tabela zawiera skrócone nazwy plików, utworzone dla sześciu plików testowych:

Skrócone nazwy plików utworzone przez Windows 2000 - Przykład pierwszy
Długa nazwa pliku
Skrócona nazwa pliku
To jest test 1.txt
TOJEST~1.TXT
To jest test 2.txt
TOJEST~2.TXT
To jest test 3.txt
TOJEST~3.TXT
To jest test 4.txt
TOJEST~4.TXT
To jest test 5.txt
TOC36B~1.TXT
To jest test 6.txt
TOC36F~1.TXT

Jeżeli pliki o nazwach wymienionych w powyższej tabeli zostaną utworzone w innej kolejności, to ich nazwy skrócone też będą inne.

Skrócone nazwy plików utworzone przez Windows 2000 - Przykład drugi
Długa nazwa pliku
Skrócona nazwa pliku
To jest test 2.txt
TOJEST~1.TXT
To jest test 3.txt
TOJEST~2.TXT
To jest test 1.txt
TOJEST~3.TXT
To jest test 4.txt
TOJEST~4.TXT
To jest test 5.txt
TOC36B~1.TXT
To jest test 6.txt
TOC36F~1.TXT

Aby zobaczyć zarówno długie, jak i krótkie nazwy dla każdego pliku w folderze, należy w wierszu poleceń napisać:

System plików FAT umieszcza tablicę alokacji plików w pobliżu początku woluminu. System FAT16 został zaprojektowany dla niewielkich dysków i prostej struktury folderów. FAT32 umożliwia użytkownikom tworzenie dużych woluminów na dużych dyskach. W woluminie są przechowywane dwie kopie tablicy alokacji plików. W przypadku uszkodzenia jednej z nich, system automatycznie korzysta z drugiej. Tablica alokacji plików jest przechowywana pod adresem określonym w sektorze rozruchowym, w bloku BPB (BIOS Parameter Block), dzięki czemu możliwe jest zlokalizowanie plików niezbędnych do uruchomienia systemu.

Uwaga!
FAT32 może automatycznie korzystać z kopii zapasowej tabeli alokacji plików, jeżeli główna tabela alokacji jest uszkodzona. Woluminy FAT16 wymagały w tym celu użycia narzędzia naprawczego, takiego jak Chkdsk.

System plików FAT16
Obsługa systemu plików FAT16 została załączona do systemu Windows 2000 z następujących powodów:

System plików FAT16 nie jest zalecany dla woluminów większych niż 511 MB. Gdy w woluminie FAT16 znajduje się dużo niewielkich plików, to przestrzeń dyskowa jest zarządzana bardzo nieefektywnie. System FAT16 nie może być używany w woluminach większych niż 4 gigabajty (GB).

Uwaga!
W woluminach posiadających mniej niż 32.680 sektorów, rozmiar klastra może wynosić do 8 sektorów. W tej sytuacji program formatujący tworzy 12-bitową tablicę FAT. Woluminy mniejsze niż 16 MB są zazwyczaj formatowane przy użyciu systemu FAT12, jednakże dokładny rozmiar graniczny zależy od geometrii dysku. Wyznacza ona także konieczność skorzystania z klastrów o większym rozmiarze, ponieważ ich ilość w woluminie musi być możliwa do zapisania za pomocą ilości bitów używanych do tego celu przez system plików zarządzający woluminem. Z tego powodu możliwe jest istnienie woluminu o pojemności 33 MB, który posiada jedynie 1 sektor na klaster. FAT12 jest implementacją systemu FAT zaprojektowaną do używania na bardzo niewielkich nośnikach. Tablica alokacji plików w systemie FAT12 jest mniejsza niż w przypadku systemów FAT16 i FAT32, ponieważ używa mniej miejsca dla każdego wpisu, pozostawiając więcej przestrzeni dla danych. Wszystkie 3.5-calowe dyskietki o pojemności 1.44 MB są formatowane przy użyciu systemu FAT12.

Rysunek ilustruje w jaki sposób system FAT16 mapuje klastry w woluminie. Tablica alokacji plików (opisana na jako FAT1 i FAT2) identyfikuje każdy klaster woluminu jako:

Folder główny jest umieszczony w określonej lokalizacji woluminu i może zawierać maksymalnie 512 wpisów. Maksymalna ilość wpisów na dyskietce zależy od jej rozmiarów.

Uwaga!
Każdy folder i nazwa pliku 8.3 jest liczona jako wpis. Na przykład, jeżeli maksymalna liczba wpisów w folderze głównym wynosi 512 i znajduje się w nim 100 folderów, to możliwe jest utworzenie w nim jeszcze tylko 412 plików lub folderów. Jeżeli te foldery lub pliki posiadają nazwy wykraczające poza format 8.3, to ilość plików lub folderów, jakie można utworzyć, zmniejsza się.

Foldery zawierają 32-bajtowe wpisy dla każdego pliku i folderu, który się w nich znajduje. Wpisy te zawierają następujące informacje:

Uwaga!
Trzy bity w każdym z wpisów zostały zarezerwowane.

Wtablicy alokacji plików woluminu FAT16 plikom przydzielana jest pierwsza dostępna lokalizacja w woluminie. Numer początkowego klastra jest adresem pierwszego klastra używanego przez plik. Każdy klaster posiada wskaźnik do kolejnego klastra pliku lub indykator końca pliku (0xFFFF), informujący o tym, że bieżący klaster jest ostatnim zawierającym dany plik. Wskaźniki oraz indykatory końca pliku są pokazane na rysunku.

Rysunek ilustruje trzy pliki znajdujące się w folderze. Plik1.txt zajmuje trzy klastry, natomiast Plik2.txt, również wymagający trzech klastrów, uległ fragmentacji. Plik3.txt mieści się w jednym klastrze. W każdym przypadku wpis w tablicy alokacji plików wskazuje na pierwszy klaster pliku.

Informacje zawarte w folderze są używane przez wszystkie systemy operacyjne, które obsługują FAT. System Windows 2000 może przechowywać we wpisie folderu FAT dodatkowe znaczniki czasowe. Znaczniki te informują o czasie utworzenia pliku oraz ostatniego dostępu do niego.

Ponieważ wszystkie wpisy w folderze są tego samego rozmiaru, to rodzaj wpisu jest oznaczany przez bajt atrybutów. Przykładowo, jeden z bitów oznacza, że wpis dotyczy podkatalogu, a inny zaznacza wpis jako wolumin. Kontrolę nad tymi bitami zazwyczaj sprawuje system operacyjny.

Bajt atrybutów zawiera także cztery bity, które mogą być ustawiane przez użytkownika. Atrybuty te mogą zaznaczać plik jako archiwalny, systemowy, ukryty i tylko-do-odczytu.

System plików FAT32
Nowością w systemie Windows 2000 jest obsługa systemu FAT32. Jego format i funkcje są podobne do znanych z systemów Windows 95 OSR2 i Windows 98.

Rozmiar klastra FAT32 jest określany przez system i może się mieścić w zakresie od 1 sektora (512 bajtów) do 128 sektorów (64 KB), zmieniając się wraz z kolejnymi potęgami liczby 2.

Uwaga!
Korzystanie z klastrów o rozmiarze 64 KB w systemie FAT32 może prowadzić do problemów związanych ze zgodnością z pewnymi programami. Maksymalny zalecany rozmiar klastra dla woluminu FAT32 wynosi 32 KB.

Ponieważ FAT32 używa 4 bajtów do zapisywania wartości klastrów, to wiele wewnętrznych struktur dysku zostało zmienionych lub rozszerzonych w porównaniu z systemem FAT16. Zmiany te nie wpłynęły na działanie większości aplikacji, jednakże narzędzia dyskowe bezpośrednio odczytujące te struktury muszą zostać zaktualizowane tak, aby mogły obsługiwać system FAT32.

Najbardziej znaczącą różnicą pomiędzy FAT16 a FAT32 jest maksymalna ilość obsługiwanych klastrów, co z kolei wpływa na maksymalny rozmiar woluminu i efektywność przechowywania danych. FAT32 przekracza 4-GB ograniczenie rozmiaru woluminu dzięki zwiększeniu maksymalnej ilości klastrów do ponad 4 milionów. FAT32, w formie zaimplementowanej w systemie Windows 2000, może zainstalować wolumin o rozmiarze nawet 127 GB. Dzięki większej ilości klastrów dostępnych w woluminie FAT32 mogą być one mniejsze, co zwiększa efektywność przechowywania danych. Woluminy FAT16 o rozmiarze pomiędzy od 2 do 4 GB korzystają z klastrów o rozmiarze 64 KB, natomiast w systemie FAT32 woluminy o rozmiarze od 256 MB do 8 GB używają klastra o wielkości 4 KB.

Największy plik, jaki może zostać utworzony w woluminie FAT32, ma rozmiar 4 GB minus 2 bajty. FAT32 zawiera w tablicy alokacji plików 4 bajty adresu dla każdego klastra, podczas gdy FAT16 używa jedynie 2 bajtów, a FAT12 jeszcze mniej, bo 1,5 bajta na klaster. Wolumin FAT32 może zawierać od 65.527 do 4.177.918 klastrów.

W systemie Windows 2000 nie można formatować woluminów FAT32 większych niż 32 GB. W celu formatowania większych woluminów należy korzystać z systemu plików NTFS. Więcej informacji o tym, dlaczego zaleca się formatowania wszystkich woluminów Windows 2000 przy użyciu NTFS, znajduje się wcześniej w tym rozdziale, w paragrafie „System plików NTFS”.

Uwaga!
Sterownik Fastfat zawarty w systemie Windows 2000 umożliwia instalowanie i pełną obsługę woluminów FAT32 większych niż 32 GB. Woluminy takie mogą być tworzone przez inne systemy operacyjne.

Nazwy plików w woluminach FAT
Pliki tworzone w woluminach FAT mogą używać bitów atrybutów i obsługiwać w ten sposób długie nazwy, nie zakłócając dostępu do woluminu przez system MS-DOS.

Zawsze gdy jest tworzony plik z długą nazwą, system Windows 2000 tworzy dla niego konwencjonalną nazwę 8.3 oraz jeden lub więcej dodatkowych wpisów w folderze. Każdy z tych wpisów zawiera 13 znaków długiej nazwy pliku. Każdy kolejny wpis folderu przechowuje fragment długiej nazwy zapisany w standardzie Unicode. System MS-DOS korzysta z takiego pliku używając jego konwencjonalnej nazwy 8.3, również zapisanej we wpisie folderu.

System Windows 2000 zaznacza kolejne wpisy w folderze jako część długiej nazwy pliku, ustawiając jednocześnie bity identyfikatora woluminu, tylko-do-odczytu oraz pliku ukrytego. System MS-DOS ignoruje wpisy z tak ustawionymi atrybutami, dzięki czemu są one dla tego systemu niewidoczne.

Rysunek ilustruje wszystkie wpisy w folderze dla pliku Tenchy~1.lis, posiadającego długą nazwę Ten chytry rudy.lis. Długa nazwa jest zapisana w standardzie Unicode, dlatego każdy jej znak wykorzystuje 2 bajty we wpisie folderu. Pole atrybutu dla wpisów nazwy długiej zawiera wartość 0x0F, natomiast dla nazwy krótkiej 0x20.

Uwaga!
Systemy Windows NT i Windows 2000 korzystają z innego algorytmu do tworzenia długich i krótkich nazw plików niż systemy Windows 95 i Windows 98. W komputerach, które można uruchomić pod kontrolą różnych systemów operacyjnych, pliki utworzone w jednym systemie mogą być jednak używane w drugim.

Więcej informacji o tym, w jaki sposób system Windows 2000 tworzy skróty nazw plików, znajduje się w dalszej części tego rozdziału, w paragrafie „Korzystanie z długich nazw plików”.

Domyślnie system Windows 2000 obsługuje długie nazwy plików w woluminach FAT. Można zapobiec ich tworzeniu ustawiając wartość wpisu Win31FileSystem w rejestrze (klucz HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem) na 1. Wartość ta zapobiega tworzeniu nowych długich nazw plików we wszystkich woluminach FAT, ale nie wpływa na istniejące już nazwy.

Wyłączenie tworzenia długich nazw plików dla systemów FAT:

Ostrzeżenie!
Nie należy używać bezpośrednio edytora rejestru do momentu, gdy nie pozostaje żadne inne wyjście. Edytory rejestru omijają standardowe środki bezpieczeństwa zapewniane przez narzędzia administracyjne. Zabezpieczenia te zapobiegają wprowadzeniu sprzecznych, mogących zmniejszyć wydajność systemu lub uszkodzić go ustawień. Edycja rejestru może skutkować poważnymi i niespodziewanymi konsekwencjami, prowadzącymi nawet do zablokowania rozruchu systemu i konieczności ponownej jego instalacji. Aby konfigurować lub dostosowywać system Windows 2000 należy używać programów w Panelu Sterowania lub Microsoft Management Console (MMC), jeśli tylko jest to możliwe.

Używanie systemu FAT w Windows 2000
System FAT16 działa w Windows 2000 w taki sam sposób, jak w systemach MS-DOS, Windows 3.x, Windows 95 i Windows 98. Podobnie, system FAT32 działa w Windows 2000 w taki sam sposób, jak w systemach Windows 95 OSR2 i Windows 98. Instalowanie systemu Windows 2000 jest możliwe w istniejących głównych lub logicznych woluminach FAT. Używając systemu Windows 2000 można przenosić lub kopiować pliki pomiędzy woluminami FAT i NTFS.

Uwaga!
Gdy kopiuje się plik z woluminu NTFS do woluminu FAT, wszystkie specyficzne dla NTFS właściwości tego pliku, takie jak uprawnienia, kompresja, szyfrowanie i obsługa plików rozrzedzonych, zostają trwale utracone. Nie można używać systemu Windows 2000 wraz z oprogramowaniem kompresującym lub partycjonującym, które wymaga załadowania sterowników dysku przez system MS-DOS, Windows 95 lub Windows 98. Z tego powodu niemożliwe jest korzystanie z programów DoubleSpace, DriveSpace lub DriveSpace 3 w woluminach FAT16, które mają być używane przez system Windows 2000.