To właśnie robi. Gdzie używane są zmienne środowiskowe systemu Windows?

Dzień dobry, drodzy czytelnicy i goście bloga, dzisiaj chcę z wami omówić taki temat: czym są zmienne środowiskowe systemu Windows, gdzie można je zastosować, zarówno w normalnej praktyce użytkownika, jak i w praktyce administratora systemu, podam ci kilka przykładów. Jak to wszystko skonfigurować i zmienić pod swoje potrzeby, to moim zdaniem podstawowa wiedza, której zrozumienie pozwoli lepiej zrozumieć zasadę działania systemów operacyjnych z rodziny Windows.

Co to są zmienne środowiskowe systemu Windows

Rozumiemy koncepcję i tak dalej Zmienna środowiskowa (Zmienna środowiskowa) są to specjalne rodzaje linków o zmniejszonym rozmiarze do określonych obiektów systemu operacyjnego Windows, używane przez różne programy do przechowywania informacji i interakcji z nimi. Można wyciągnąć analogię z linkami względnymi w witrynach, w których nie ma wyraźnego wskazania protokołu. Najczęściej są to ścieżki do konkretnych katalogów w systemie operacyjnym.

Gdzie używane są zmienne środowiskowe systemu Windows?

Podam kilka przykładów:

  • W skryptach > gdy na przykład każdy użytkownik musi dokonać jakichś ustawień, na przykład umieścić na pulpicie nowy folder z dokumentami. Ponieważ każdy użytkownik ma własną ścieżkę do pulpitu, na przykład C:\Users\lacky\Desktop, a dostęp do ścieżki względnej można uzyskać także za pomocą zmiennej %HOMEPATH%, jeśli w Eksploratorze wpiszesz %HOMEPATH%\Desktop, zostaniesz przeniesiony do tabeli bieżącego użytkownika na pulpicie.

  • w Zasadach grupy, aby skonfigurować środowiska użytkowników, takie jak profile mobilne.
  • Optymalizacja kodu > Jeśli Twój kod bardzo często korzysta z tych samych ścieżek plików lub folderów, a także kluczy rejestru, możesz łatwo przypisać krótką zmienną do dalszego wykorzystania. Poniżej podam zbiorczą listę zmiennych środowiskowych w systemie Windows 10 i wersjach wcześniejszych, a także pokażę, jak je tworzyć i zmieniać.

Wszystkie zmienne środowiskowe systemu Windows 10 i innych wersji obejmują operatora specjalnego%. Jest to konieczne, aby system operacyjny mógł przetworzyć żądanie wyszukiwania. Prosty przykład: szukasz folderu TEMP i nie wiesz, gdzie się on znajduje, wpisz %TEMP%, a wyszukiwanie będzie dotyczyło wszystkich lokalnych dysków i partycji.

Lista zmiennych środowiskowych systemu Windows 10

Powyższa lista jest w pełni odpowiednia zarówno dla Windows 7, jak i Windows 8.1, wszystko zostało osobiście sprawdzone. Jestem pewien, że ta wiedza znacznie pomoże Ci zoptymalizować Twoją pracę.

  • %ALLUSERSPROFILE% > ta zmienna wyśle ​​Cię do folderu C:\ProgramData
  • %windir% > to jest folder C:\Windows
  • %APPDATA% > jesteś w ukrytym folderze C:\Users\Username\AppData\Roaming
  • %CommonProgramFiles% > folder C:\Program Files\Common Files
  • %CommonProgramFiles(x86)% > przeniesie Cię do C:\Program Files (x86)\Common Files
  • %CommonProgramW6432% > przekieruje Cię do C:\Program Files\Common Files
  • %COMPUTERNAME% > nazwa_komputera, używana w skryptach
  • %ComSpec%> otworzy wiersz poleceń systemu Windows 10 C:\Windows\system32\cmd.exe
  • %HOMEDRIVE% > ścieżka do dysku C:
  • %HOMEPATH% > ta zmienna środowiskowa systemu Windows przeniesie Cię do folderu użytkownika \Users\Nazwa użytkownika
  • %LOCALAPPDATA% > ta zmienna środowiskowa systemu Windows przeniesie Cię do folderu C:\Users\Username\AppData\Local
  • %LOGONSERVER% > NazwaKomputera
  • %NUMBER_OF_PROCESSORS% > Liczba_procesorów
  • %OS% > Windows_NT, używany również w skryptach
  • %Path% > C:\Windows\system32;C:\Windows;C:\Windows\System32Wbem;
  • %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  • %PROCESSOR_ARCHITECTURE% > x86 lub AMD64, architektura Windows
  • %PROCESSOR_IDENTIFIER% > Rodzina Intel64 6 Model 37 Krok 5, Oryginalny Intel
  • %PROCESSOR_LEVEL% > 6
  • %PROCESSOR_REVISION% > 2505 (przykład)
  • %ProgramData% > folder C:\ProgramData
  • %ProgramFiles% > C:\Program Files
  • %ProgramFiles(x86)% > folder C:\Program Files (x86)
  • %ProgramW6432% > C:\Program Files
  • %PROMPT% > $P$G
  • %PSModulePath% > C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ zgadzam się bardzo szybko
  • %PUBLIC% > C:\Users\Public
  • %SystemDrive% > dysk C:
  • %SystemRoot% > C:\Windows
  • %TEMP% >
  • %TMP% > C:\Users\Nazwa użytkownika\AppData\Local\Temp (domyślnie)
  • %USERDOMAIN% > NazwaKomputera
  • %USERDOMAIN_ROAMINGPROFILE% > NazwaKomputera
  • %USERNAME% > Nazwa użytkownika
  • %USERPROFILE% > C:\Użytkownicy\Nazwa użytkownika

Jak wyświetlić listę wszystkich zmiennych systemu Windows

W systemie Windows 10 i innych wersjach można wyświetlić listę wszystkich zmiennych środowiskowych systemu Windows, otwierając wiersz poleceń jako administrator i wprowadzając polecenie SET. W rezultacie otrzymasz wszystkie domyślne zmienne środowiskowe systemu Windows 10 dla określonego systemu operacyjnego.

Dla wygody możesz wyeksportować całą tę listę do pliku tekstowego, w tym celu wpisz:

zestaw > D:\Zmienne.txt

Oto treść tego dokumentu.

Inną metodą przeglądania zmiennych systemu operacyjnego jest rejestr systemu Windows. Naciśnij WIN + R i wprowadź regedit. W otwartym oknie Edytora rejestru przejdź do gałęzi:

Aby wyświetlić zmienne dla komputera

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Aby wyświetlić zmienne dla użytkownika

HKEY_CURRENT_USER\Środowisko

Utwórz zmienne środowiskowe systemu Windows 10

Oprócz istniejących zmiennych systemu Windows 10 możesz tworzyć nowe, jest to bardzo proste i nie jest zabronione. Co jest od Ciebie wymagane, musisz przejść do właściwości systemu. Istnieje kilka metod, jeśli mówimy o systemie Windows 10, możesz to zrobić, klikając prawym przyciskiem myszy przycisk „Start”, wybierając System.

Uniwersalną metodą jest przejście do właściwości mojego komputera lub naciśnięcie kombinacji klawiszy WIN+Pause Breake.

Z okna właściwości systemu należy przejść do „Zaawansowanych ustawień systemu”

A oto dwa typy zmiennych środowiskowych systemu Windows:

  • Zmienne tymczasowe temp
  • Zmienne systemowe

Obydwa można łatwo modyfikować lub tworzyć.

Na przykład utworzę nową zmienną systemową, nazwijmy ją SYSPREP i podam ścieżkę do folderu C:\Windows\System32\Sysprep

Jak widać, nie ma tu nic skomplikowanego, dzięki takim rzeczom można znacznie uprościć sobie życie i zaoszczędzić mnóstwo czasu.

Wielu użytkowników komputerów z systemem Windows, nie wspominając o programistach, zna problemy występujące podczas pracy z długimi (więcej niż 260 znaków, MAX_PATH) ścieżkami plików lub katalogów.

W tym artykule omówiono sposoby pozbycia się tego reliktu podczas tworzenia aplikacji na różne platformy (WinApi, .Net Framework, .Net Core) i aktywowania natywnej obsługi długich ścieżek w systemie Windows 10 (Aktualizacja rocznicowa).

Wygraj aplikacje API

W aplikacjach korzystających z API Win do pracy z plikami przepis na pozbycie się ograniczenia MAX_PATH jest znany od niepamiętnych czasów - do pracy z katalogiem konieczne było zastosowanie Unicode wersji funkcji z końcówką „W” lub plik i rozpocznij ścieżkę od przedrostka \\?\. Umożliwiło to użycie ścieżek o długości do 32767 znaków.

W Windows 10 (1607) zmieniło się zachowanie funkcji pracy z plikami: teraz można wyłączyć sprawdzanie ograniczeń MAX_PATH na poziomie systemu.

Miało to wpływ na następujące funkcje:

Aby pracować z katalogami: CreateDirectoryW, CreateDirectoryExW, GetCurrentDirectoryW, RemoveDirectoryW, SetCurrentDirectoryW. A do pracy z plikami: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesW, SetFileAttributesW, GetFullPathNameW, GetLongPathNameW, MoveFi leW, MoveFileExW, MoveFileWithProgressW, ZamieńFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.


Eliminuje to potrzebę stosowania przedrostka \\?\ i potencjalnie daje aplikacjom działającym bezpośrednio lub pośrednio przez interfejs Win API szansę na uzyskanie obsługi długich ścieżek bez konieczności ich przebudowywania. Sposób aktywacji tej funkcji opisano na końcu artykułu.

.Net Framework

Choć .Net Framework wykorzystuje do pracy z plikami API Win, poprzednia zmiana nie przyniosłaby rezultatów, bo Kod BCL ma wbudowane wstępne sprawdzenie dopuszczalności długości nazw katalogów i plików i nie doszedł nawet do wywołania funkcji Win API, zgłaszając znany wyjątek. Ze względu na liczne prośby społeczności (ponad 4500 w UserVoice) w wersji 4.6.2 usunięto kontrolę ograniczeń długości ścieżki z kodu BCL, pozostawiając to systemom operacyjnym i plikom!

Oto co daje:

  • Używając przedrostka „\\?\” możemy pracować z długimi ścieżkami jak w Win API, Directory.CreateDirectory("\\\\?\\" + long_dir_name);
  • Jeśli włączysz natywną obsługę długich nazw plików w Windows 10 (1607), nie będziesz musiał nawet używać prefiksu!
Jak to włączyć:
  • Podczas tworzenia aplikacji użyj .Net Framework 4.6.2 jako elementu docelowego.
  • Użyj pliku konfiguracyjnego, na przykład, jeśli aplikacja została już zbudowana w środowisku .Net 4.0:

Rdzeń .NET

W tym przypadku wsparcie dla długich ścieżek ogłoszono już w listopadzie 2015 r. Najwyraźniej wpływ miał open source'owy charakter projektu i brak ścisłej potrzeby zapewnienia kompatybilności wstecznej.

Jak to włączyć:
Wszystko działa od razu po wyjęciu z pudełka. W odróżnieniu od implementacji w .Net Framework, nie ma potrzeby dodawania przedrostka „\\?\” – w razie potrzeby dodawany jest on automatycznie.

Tutaj możesz zobaczyć przykład.

Jak włączyć obsługę długich ścieżek w systemie Windows 10 (1607)

Ta funkcja jest domyślnie wyłączona. Dzieje się tak, ponieważ ta funkcja ma charakter eksperymentalny i w celu uzyskania pełnej obsługi należy opracować różne podsystemy i aplikacje.

Wbudowaną obsługę długich ścieżek można włączyć tworząc lub zmieniając następujący parametr rejestru systemowego: Parametr HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Typ: REG_DWORD) 1 – odpowiada włączonej wartości.

Lub poprzez zasady grupy (Win+R\gpedit.msc) Konfiguracja komputera > Szablony administracyjne > System > System plików > Włącz długie ścieżki NTFS. To samo jest w wersji zlokalizowanej: Konfiguracja komputera > Szablony administracyjne > System > System plików > Włącz długie ścieżki Win32.

Co więcej, źródła nie zgadzają się co do manifestu (albo ja źle zrozumiałem, ale w tej chwili nie mam jak sprawdzić). Na przykład dokumentacja MSDN stwierdza, że ​​manifestu można użyć jako alternatywnego sposobu włączenia obsługi długich ścieżek w poszczególnych aplikacjach, a blog MSDN stwierdza, że ​​jest to drugi wymagany krok po włączeniu go w zasadach.
Ale zgadzają się co do formatu określenia tej opcji:

PRAWDA
Niestety, w tej chwili nie będzie to działać z CMD, ze względu na specyfikę pracy ze ścieżkami, ale w PowerShell wszystko powinno działać.

P.S.

Na tym kończę mój mały piątkowy post, pomijając kwestie kompletności wdrożenia obsługi długich ścieżek w Windows 10 (1607) czy wydajności przy korzystaniu z różnych kombinacji wydań Windows, systemów plików i API. Post będzie aktualizowany w miarę pojawiania się nowych faktów i wyników eksperymentów.

Dziękuję za uwagę!

Teczka "Dane aplikacji" zawiera informacje o użytkowniku różnych aplikacji (historia, ustawienia, sesje, zakładki, pliki tymczasowe itp.). Z biegiem czasu zapycha się różnymi danymi, które mogą nie być już potrzebne, a jedynie zajmują miejsce na dysku. W takim przypadku sensowne jest wyczyszczenie tego katalogu. Ponadto, jeśli użytkownik podczas ponownej instalacji systemu operacyjnego chce zapisać ustawienia i dane, których używał wcześniej w różnych programach, wówczas musi przenieść zawartość tego katalogu ze starego systemu na nowy, kopiując go. Ale najpierw musisz dowiedzieć się, gdzie się on znajduje. Dowiedzmy się, jak to zrobić na komputerach z systemem operacyjnym Windows 7.

Nazwa "Dane aplikacji" oznacza „dane aplikacji”, co w języku rosyjskim oznacza „dane aplikacji”. Właściwie w Windows XP katalog ten miał swoją pełną nazwę, która w późniejszych wersjach została skrócona do obecnej nazwy. Jak wspomniano powyżej, folder ten zawiera dane, które gromadzą się podczas działania programów użytkowych, gier i innych aplikacji. Na twoim komputerze może znajdować się więcej niż jeden katalog o tej nazwie, ale kilka. Każdemu z nich odpowiada utworzone oddzielne konto użytkownika. W katalogu "Dane aplikacji" Istnieją trzy podkatalogi:

  • "Lokalny";
  • „Lokalny niski”;
  • „Roaming”.

Każdy z tych podkatalogów zawiera foldery, których nazwy są identyczne z nazwami odpowiednich aplikacji. Katalogi te należy wyczyścić, aby zwolnić miejsce na dysku.

Włącz widoczność ukrytych folderów

Powinieneś wiedzieć, że katalog "Dane aplikacji» domyślnie ukryte. Ma to na celu uniemożliwienie niedoświadczonym użytkownikom omyłkowego usunięcia ważnych danych w nich zawartych lub w całości. Aby jednak znaleźć ten folder, musimy włączyć widoczność ukrytych folderów. Zanim przejdziemy do metod wykrywania "Dane aplikacji", dowiedzmy się, jak to zrobić. Istnieje kilka opcji włączania widoczności ukrytych folderów i plików. Użytkownicy chcący się z nimi zapoznać mogą to zrobić korzystając z osobnego artykułu na naszym serwisie. Tutaj rozważymy tylko jedną opcję.


Pokazywanie ukrytych folderów zostanie włączone.

Metoda 1: Pole Wyszukaj programy i pliki

Przejdźmy teraz bezpośrednio do sposobów przejścia do żądanego katalogu lub znalezienia jego lokalizacji. Jeśli musisz iść do "Dane aplikacji" bieżącego użytkownika, można to zrobić za pomocą pola „Znajdź programy i pliki”, który znajduje się w menu "Początek".


Bezpośrednio do katalogu "Dane aplikacji" możesz tam przejść bezpośrednio, wpisując wyrażenie w polu „Znajdź programy i pliki”.


Metoda 2: Uruchom narzędzie

Bardzo podobny algorytm otwierania katalogu "Dane aplikacji" można to zrobić za pomocą narzędzia systemowego "Uruchomić". Ta metoda, podobnie jak poprzednia, nadaje się do otwarcia folderu dla konta, na którym aktualnie pracuje użytkownik.


Podobnie w przypadku poprzedniej metody możesz od razu dostać się do folderu "Dane aplikacji".


Metoda 3: Przejdź do Eksploratora

Jak znaleźć adres i dostać się do folderu "Dane aplikacji", przeznaczony dla konta, na którym aktualnie pracuje użytkownik, wymyśliliśmy to. Ale co, jeśli chcesz otworzyć katalog "Dane aplikacji" dla innego profilu? Aby to zrobić, musisz dokonać przejścia bezpośrednio "Konduktor" lub wpisz dokładny adres lokalizacji, jeśli już go znasz, w pasku adresu "Konduktor". Problem w tym, że dla każdego użytkownika, w zależności od ustawień systemu, lokalizacji systemu Windows i nazw kont, ścieżka ta będzie inna. Ale ogólny wzór ścieżki do katalogu, w którym znajduje się żądany folder, będzie wyglądał następująco:

(dysk_systemowy):\Użytkownicy\(nazwa_użytkownika)


Istnieje kilka możliwości dostania się do folderu "Dane aplikacji" i znajdź jego lokalizację w systemie Windows 7. Można to zrobić jako metodę bezpośredniego przejścia za pomocą "Konduktor" oraz poprzez wprowadzenie wyrażeń poleceń w polach niektórych narzędzi systemowych. Warto wiedzieć, że folderów o podobnej nazwie, zgodnej z nazwami kont, które tworzone są w systemie, może być kilka. Dlatego musisz od razu zrozumieć, do którego katalogu chcesz się udać.

Ta sekcja dotyczy:
  • Platformy: Solaris SPARC, Red Hat Linux, SUSE Linux, Oracle Linux, Windows 10, Windows 8, Windows 7, Vista, Windows XP, Mac OS X

Instrukcje na tej stronie są przeznaczone wyłącznie dla doświadczeni użytkownicy i administratorzy systemów.


Informacje ogólne

  • Zmienny ŚCIEŻKA to zmienna systemowa używana przez system operacyjny do znajdowania żądanych obiektów wykonywalnych w wierszu poleceń lub oknie terminala.
  • Zmienna systemowa ŚCIEŻKA można ustawić za pomocą narzędzie systemowe w Panelu sterowania systemu Windows lub przy użyciu pliku startowego powłoki systemu Linux i Solaris.
  • Na uruchomionych komputerach Okna Lub Mac OS X wprowadzanie zmian w zmiennej systemowej PATH zwykle nie jest wymagane.

Okna

Windows 10 i Windows 8
  1. W wierszu „Wyszukaj” wyszukaj: System (Panel sterowania)
  2. Kliknij w link .
  3. Kliknij Zmienne środowiska. W rozdziale Zmienne środowiska Zmiana
  4. W oknie (lub Nowa zmienna systemowa OK OK.
System Windows 7
  1. Na pulpicie kliknij ikonę prawym przyciskiem myszy Komputer.
  2. Z menu kontekstowego wybierz Nieruchomości.
  3. Kliknij w link Zaawansowane ustawienia systemu.
  4. Kliknij Zmienne środowiska. W rozdziale Zmienne środowiska wybierz zmienną środowiskową PATH. Kliknij Zmiana. Jeśli zmienna PATH nie istnieje, kliknij Utwórz.
  5. W oknie Zmiana zmiennej systemowej(Lub Nowa zmienna systemowa) określ wartość zmiennej środowiskowej PATH. Kliknij OK. Zamknij inne otwarte okna, klikając OK.
  6. Otwórz ponownie okno wiersza poleceń i uruchom kod Java.
Windows XP
  1. Kliknij Początek, wybierać Panel sterowania, kliknij dwukrotnie System i wybierz kartę Dodatkowo.
  2. Kliknij Zmienne środowiska. W rozdziale Zmienne środowiska wybierz zmienną środowiskową PATH. Kliknij Zmiana. Jeśli zmienna PATH nie istnieje, kliknij Utwórz.
  3. W oknie Zmiana zmiennej systemowej(Lub Nowa zmienna systemowa) określ wartość zmiennej środowiskowej PATH. Kliknij OK. Zamknij inne otwarte okna, klikając OK.
  4. Otwórz ponownie okno wiersza poleceń i uruchom kod Java.

Mac OS X

Aby uruchomić inną wersję Java, podaj pełną ścieżkę lub użyj narzędzia java_home:

% /usr/libexec/java_home -v 1.8.0_73 --exec javac -wersja

Solarisa i Linuksa

  1. Aby sprawdzić, czy ścieżka jest poprawnie skonfigurowana:
    W oknach terminala wpisz:
    % wersja Java
    Jeśli nie można jej znaleźć, zostanie wyświetlona wersja narzędzia Java. Jeśli wersja jest nieaktualna lub pojawił się błąd java: nie znaleziono polecenia, to ścieżka jest ustawiona niepoprawnie.
  2. Określ, która wykonywalna wersja Java jest pierwszą znalezioną w zmiennej ŚCIEŻKA
    W oknie terminala wpisz:
    % która Java
Ostateczna konfiguracja ścieżki

Aby ustawić ścieżkę na stałe, skonfiguruj ją w pliku startowym.
Notatka. Podano instrukcje dla dwóch najpopularniejszych powłok w systemach Linux i Solaris. Jeśli używasz innych powłok, zobacz samouczek dotyczący ustawiania zmiennej PATH.

Powłoka Bash

Edytuj plik startowy (~/.bashrc)

  1. Zmień zmienną ŚCIEŻKA zmienny
    ŚCIEŻKA=/usr/local/jdk1.8.0/bin:$PATH
    eksportuj ŚCIEŻKĘ
  2. Pobierz plik startowy
    %. /.profil

  3. % wersja Java
Powłoka C (csh)

Edytuj plik startowy (~/.cshrc)

  1. Ustaw ścieżkę
    ustaw ścieżkę=(/usr/local/jdk1.8.0/bin $ścieżka)
  2. Zapisz zmiany i zamknij okno
  3. Pobierz plik startowy
    % źródło ~/.cshrc
  4. Upewnij się, że ścieżka jest ustawiona, powtarzając polecenie Java
    % wersja Java

Ścieżka do określonego pliku składa się z jednego lub więcej komponentów oddzielonych znakiem specjalnym (ukośnikiem odwrotnym), przy czym każdy komponent jest zazwyczaj nazwą katalogu lub nazwą pliku, ale z pewnymi godnymi uwagi wyjątkami opisanymi poniżej. Często ma to kluczowe znaczenie przy interpretacji systemu ścieżek: jak wygląda początek lub przedrostek ścieżki. Przedrostek ten określa przestrzeń nazw używaną przez ścieżkę, a ponadto jakie znaki specjalne są używane w jakim miejscu ścieżki, łącznie z ostatnim znakiem.

Jeśli komponent ścieżki jest nazwą pliku, musi to być ostatni komponent.

Każdy składnik ścieżki będzie również ograniczony maksymalną długością określoną dla określonego systemu plików. Ogólnie zasady te można podzielić na dwie kategorie: krótkie i długie. Należy pamiętać, że nazwy katalogów są przechowywane w systemie plików jako specjalny typ pliku, ale konwencje nazewnictwa plików mają zastosowanie również do nazw katalogów. Zatem ścieżka jest po prostu ciągiem reprezentującym hierarchię pomiędzy wszystkimi katalogami istniejącymi dla określonego pliku lub nazwy katalogu.

Ścieżki pełne i względne

W przypadku funkcji API systemu Windows, które manipulują plikami, nazwy plików często mogą odnosić się do bieżącego katalogu, podczas gdy niektóre interfejsy API wymagają pełnej ścieżki. Nazwa pliku odnosi się do bieżącego katalogu, chyba że zaczyna się od następujących słów:

  • Nazwa UNC w dowolnym formacie, która zawsze zaczyna się od dwóch znaków ukośnika odwrotnego („\\”).
  • Oznaczenie dysku, po którym następuje ukośnik odwrotny, na przykład „C:” lub „d:”.
  • Pojedynczy ukośnik odwrotny, np. „katalog” lub „\plik.txt”. Nazywa się to również ścieżką bezwzględną.
Jeśli nazwa pliku zaczyna się tylko od wskaźnika dysku, ale nie od ukośnika odwrotnego po dwukropku, jest ona interpretowana jako ścieżka względna do bieżącego katalogu o określonej literze dysku. Należy pamiętać, że katalog bieżący może, ale nie musi, być katalogiem głównym, w zależności od tego, jak został ustawiony podczas ostatniej operacji „zmiany katalogu” na tym dysku. Przykłady tego formatu wyglądają następująco:
  • „C:tmp.txt” odnosi się do pliku o nazwie „tmp.txt” w bieżącym katalogu na dysku C.
  • „C:tempdir\tmp.txt” odnosi się do pliku w podkatalogu bieżącego katalogu na dysku C.
Ścieżkę uważa się również za względną, jeśli zawiera „dwa punkty”; to znaczy dwa okresy razem w jednym komponencie ścieżki. Ten specjalny kwalifikator służy do wyznaczenia katalogu znajdującego się powyżej bieżącego katalogu, zwanego także „katalogiem nadrzędnym”. Przykłady tego formatu wyglądają następująco:
  • „..\tmp.txt” wskazuje plik o nazwie tmp.txt, który znajduje się w katalogu nadrzędnym bieżącego katalogu.
  • „..\..\tmp.txt” wskazuje plik znajdujący się dwa katalogi powyżej bieżącego katalogu.
  • „..\tempdir\tmp.txt” określa plik o nazwie tmp.txt, który znajduje się w katalogu o nazwie tempdir, w tym samym katalogu, co katalog bieżący.
Ścieżki względne mogą łączyć oba typy przykładów, na przykład „C:..\tmp.txt”. Jest to przydatne, ponieważ system śledzi bieżący dysk wraz z bieżącym katalogiem tego dysku, ale także śledzi bieżące katalogi oznaczone każdą z różnych liter dysku (jeśli system ma więcej niż jedną), niezależnie od tego, który dysk jest oznaczony jako bieżący dysk.

Maksymalny limit długości ścieżki

W interfejsie API systemu Windows (z pewnymi wyjątkami, które zostaną omówione w kolejnych akapitach) maksymalna długość ścieżki w max_path jest zdefiniowana jako 260 znaków. Ścieżka lokalna jest zbudowana w następującej kolejności: litera dysku, dwukropek, ukośnik odwrotny, składniki nazwy oddzielone ukośnikami odwrotnymi i kończący znak zerowy. Na przykład maksymalna ścieżka do dysku D to „D:\ jakiś 256-znakowy ciąg ścieżki”, gdzie „” oznacza niewidoczny znak NULL dla bieżącej strony kodowej systemu. (Znaki są tutaj użyte dla przejrzystości i nie mogą być częścią prawidłowego ciągu ścieżki.)

Funkcje we/wy plików w interfejsie API systemu Windows konwertują „/” na „\ w ramach konwersji nazwy na nazwę typu NT, chyba że używany jest przedrostek „\\?”.

Istnieje wiele funkcji w interfejsie API systemu Windows, które mają również wersje Unicode, aby umożliwić dłuższe ścieżki o maksymalnej całkowitej długości ścieżki wynoszącej 32 767 znaków. Ten typ ścieżki składa się z komponentów oddzielonych ukośnikami odwrotnymi, każdy aż do wartości zwróconej w parametrze Lpmaximumcomponentlength funkcji GetVolumeInformation (ta wartość wynosi zazwyczaj 255 znaków). Aby określić ścieżkę o większej długości, użyj przedrostka „\\?\”. Na przykład?\\" ?\D:\bardzo_długa_ścieżka".

Należy zauważyć, że maksymalna ścieżka wynosząca 32 767 znaków jest przybliżona, ponieważ przedrostek „\\?\” może zostać rozwinięty przez system w czasie wykonywania do dłuższego ciągu, a to rozwinięcie jest stosowane do całkowitej długości.

Tego samego przedrostka można również używać w ścieżkach zbudowanych zgodnie z Uniwersalną konwencją nazewnictwa (UNC). Aby określić taką ścieżkę za pomocą UNC, użyj „\\?\UNC\”. Na przykład?\\",\UNC ścieżka\\serwer\udział”, gdzie „serwer” to nazwa komputera, a „udział” to nazwa udostępnionego folderu. Przedrostki te nie są używane jako część samej ścieżki. Wskazują, że ścieżka musi zostać przekazana do systemu z minimalną modyfikacją, co oznacza, że ​​nie można używać ukośników do przedstawienia separatorów ścieżek, kropki do reprezentowania bieżącego katalogu lub podwójnych kropek do reprezentowania katalogu nadrzędnego. Ponieważ nie można użyć przedrostka „\\?\” ze ścieżką względną, ścieżki względne są zawsze ograniczone do łącznej liczby znaków MAX_PATH.

Nie trzeba nic robić, aby znormalizować Unicode w ciągach ścieżek i nazw plików dla funkcji API we/wy plików systemu Windows, ponieważ system plików traktuje ścieżkę i nazwy plików jako sekwencję wartości wchar. Wszelka normalizacja wymagana dla aplikacji musi być przeprowadzona z myślą o tym, niezależnie od wszelkich wywołań wykonywanych do pliku funkcji API we/wy systemu Windows.

W przypadku korzystania z interfejsu API do tworzenia katalogu określona ścieżka nie może być tak długa, aby nie można było dodać nazwy pliku 8.3 (tzn. nazwa katalogu nie może przekraczać MAX_PATH minus 12).

Powłoka i system plików mają różne wymagania. Możliwe jest utworzenie ścieżki za pomocą interfejsu API systemu Windows, której interfejs powłoki nie będzie w stanie poprawnie zinterpretować.

Począwszy od systemu Windows 10 w wersji 1607, ograniczenia MAX_PATH zostały usunięte z udostępnionych katalogów plików i funkcji Win32. Konieczne jest jednak wybranie nowego zachowania. Rejestr umożliwia włączenie lub wyłączenie nowego zachowania długiej ścieżki. Aby włączyć długie ścieżki, ustaw klucz rejestru na

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (typ: reg_dword). Wartość klucza zostanie zapisana w pamięci podręcznej przez system (dla procesu) po pierwszym wywołaniu funkcji pliku lub katalogu Win32. Klucz rejestru nie zostanie ponownie załadowany przez cały czas trwania procesu. Aby wszystkie aplikacje w systemie rozpoznały wartość klucza, może być konieczne ponowne uruchomienie komputera, ponieważ niektóre procesy mogły zostać uruchomione przed ustawieniem klucza.

Możesz także włączyć nowe zachowanie długiej ścieżki dla poszczególnych aplikacji za pośrednictwem manifestu:

PRAWDA Oto funkcje zarządzania katalogami, które nie będą miały limitu maksymalnej ścieżki, jeśli włączysz długie ścieżki: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.