Det er det, den gør. Hvor bruges Windows-miljøvariabler?

God eftermiddag, kære læsere og gæster på bloggen, i dag vil jeg diskutere med jer dette emne: hvad er Windows-miljøvariabler, hvor kan de bruges, både i normal brugerpraksis og i praksis af en systemadministrator, vil jeg give du et par eksempler. Hvordan det hele er konfigureret og ændret for at passe til dine behov, efter min mening er dette grundlæggende viden, hvis forståelse bedre vil vise dig princippet om drift af operativsystemer i Windows-familien.

Hvad er Windows-miljøvariabler

Lad os forstå konceptet, og så miljøvariabel (miljøvariabel) disse er en speciel slags links af reduceret størrelse til visse objekter i Windows-operativsystemet, der bruges af forskellige programmer til at gemme information og interagere med den. En analogi kan drages med relative links på websteder, hvor der ikke er nogen eksplicit indikation af protokollen. Oftest er disse stier til specifikke mapper i OS.

Hvor bruges Windows-miljøvariabler?

Lad mig give dig et par eksempler:

  • I scripts > når f.eks. hver bruger skal lave en eller anden form for indstilling, f.eks. lægge en ny mappe med dokumenter på skrivebordet. Da hver bruger har deres egen sti til skrivebordet, f.eks. C:\Users\lacky\Desktop, og du også kan få adgang til den relative sti ved hjælp af %HOMEPATH%-variablen, hvis du indtaster %HOMEPATH%\Desktop i Explorer, vil du blive taget til den aktuelle brugers tabel på skrivebordet.

  • i gruppepolitik for at konfigurere brugermiljøer, såsom roaming-profiler.
  • Kodeoptimering > Hvis din kode meget ofte bruger de samme fil- eller mappestier, samt registreringsnøgler, kan du nemt tildele en kort variabel til videre brug. Nedenfor vil jeg give dig en oversigt over miljøvariabler i Windows 10 og tidligere versioner, og jeg vil også vise dig, hvordan du opretter og ændrer dem.

Alle miljøvariabler af Windows 10 og andre versioner inkluderer speciel operatør%. Det er nødvendigt for at operativsystemet kan behandle søgeanmodningen. Et simpelt eksempel: du leder efter TEMP-mappen og ved ikke hvor den er placeret, indtast %TEMP% og søgningen vil være på alle lokale drev og partitioner.

Liste over Windows 10 miljøvariabler

Ovenstående liste er fuldt egnet til både Windows 7 og Windows 8.1, alt er blevet personligt verificeret. Jeg er sikker på, at denne viden i høj grad vil hjælpe dig med at optimere dit arbejde.

  • %ALLUSERSPROFILE% > denne variabel vil sende dig til mappen C:\ProgramData
  • %windir% > dette er mappen C:\Windows
  • %APPDATA% > du er i den skjulte mappe C:\Users\Username\AppData\Roaming
  • %CommonProgramFiles% > mappe C:\Program Files\Common Files
  • %CommonProgramFiles(x86)% > fører dig til C:\Program Files (x86)\Common Files
  • %CommonProgramW6432% > vil omdirigere dig til C:\Program Files\Common Files
  • %COMPUTERNAME% > Computernavn, brugt i scripts
  • %ComSpec%> åbner Windows 10 kommandoprompt C:\Windows\system32\cmd.exe
  • %HOMEDRIVE% > sti til drev C:
  • %HOMEPATH% > denne Windows-miljøvariabel fører dig til brugermappen \Brugere\Brugernavn
  • %LOCALAPPDATA% > denne Windows-miljøvariabel fører dig til mappen C:\Users\Username\AppData\Local
  • %LOGONSERVER% > Computernavn
  • %NUMBER_OF_PROCESSORS% > Antal_behandlere
  • %OS% > Windows_NT, bruges også i scripts
  • %Path% > C:\Windows\system32;C:\Windows;C:\Windows\System32Wbem;
  • %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  • %PROCESSOR_ARCHITECTURE% > x86 eller AMD64, Windows-arkitektur
  • %PROCESSOR_IDENTIFIER% > Intel64 Family 6 Model 37 Step 5, GenuineIntel
  • %PROCESSOR_LEVEL% > 6
  • %PROCESSOR_REVISION% > 2505 (eksempel)
  • %ProgramData% > mappe C:\ProgramData
  • %ProgramFiles% > C:\Program Files
  • %ProgramFiles(x86)% > mappe C:\Program Files (x86)
  • %ProgramW6432% > C:\Program Files
  • %PROMPT% > $P$G
  • %PSModulePath% > C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ enig meget hurtigt
  • %PUBLIC% > C:\Users\Public
  • %SystemDrive% > drev C:
  • %SystemRoot% > C:\Windows
  • %TEMP% >
  • %TMP% > C:\Brugere\Brugernavn\AppData\Local\Temp (standard)
  • %USERDOMAIN% > Computernavn
  • %USERDOMAIN_ROAMINGPROFILE% > Computernavn
  • %USERNAME% > Brugernavn
  • %BRUGERPROFIL% > C:\Brugere\Brugernavn

Sådan listes alle Windows-variabler

I Windows 10 og andre versioner kan du få vist en liste over alle Windows-miljøvariabler ved at åbne en kommandoprompt som administrator og indtaste SET-kommandoen. Som et resultat vil du få alle standard Windows 10 miljøvariabler for et specifikt operativsystem.

For nemheds skyld kan du eksportere hele denne liste til en tekstfil, for at gøre dette skal du indtaste:

sæt > D:\Variables.txt

Her er indholdet af dette dokument.

En anden metode til at se operativsystemvariabler er Windows-registreringsdatabasen. Tryk på WIN+R og indtast regedit. I vinduet Registreringseditor, der åbnes, skal du gå til grenen:

For at se variabler til computeren

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

For at se variabler for en bruger

HKEY_CURRENT_USER\Environment

Opret Windows 10 miljøvariabler

Ud over eksisterende Windows 10-variabler kan du oprette nye, dette er meget nemt og er ikke forbudt. Hvad der kræves af dig, skal du gå til systemegenskaberne. Der er flere metoder, hvis vi taler om Windows 10, så kan du gøre det ved at højreklikke på knappen "Start" og vælge System.

En universel metode er at gå til egenskaberne for min computer eller trykke på tastekombinationen WIN+Pause Breake.

Fra vinduet med systemegenskaber skal du gå til "Avancerede systemindstillinger"

Og her er to typer Windows-miljøvariabler:

  • Midlertidige variable temp
  • Systemvariabler

Begge kan nemt ændres eller oprettes.

For eksempel vil jeg oprette en ny systemvariabel, kalde den SYSPREP og angive stien til mappen C:\Windows\System32\Sysprep

Som du kan se, er der ikke noget kompliceret her; takket være ting som dette kan du i høj grad forenkle dit liv og spare en masse tid.

Mange Windows PC-brugere, for ikke at nævne udviklere, kender til problemer, når de arbejder med lange (mere end 260 tegn, MAX_PATH) fil- eller mappestier.

Denne artikel diskuterer måder at slippe af med dette levn, når man udvikler applikationer på forskellige platforme (WinApi, .Net Framework, .Net Core) og aktiverer native support for lange stier i Windows 10 (Anniversary Update).

Vind API-applikationer

I applikationer, der bruger Win API til at arbejde med filer, har opskriften på at slippe af med MAX_PATH-begrænsningen været kendt siden umindelige tider - det var nødvendigt at bruge Unicode-versionen af ​​funktionen med slutningen "W" for at arbejde med en mappe eller fil og start stien med præfikset \\?\. Dette gjorde det muligt at bruge stier på op til 32767 tegn lange.

I Windows 10 (1607) har funktionerne til at arbejde med filer ændret sig: det er nu muligt at deaktivere kontrol af MAX_PATH-begrænsninger på systemniveau.

Dette påvirkede følgende funktioner:

Sådan arbejder du med mapper: CreateDirectoryW, CreateDirectoryExW, GetCurrentDirectoryW, RemoveDirectoryW, SetCurrentDirectoryW. Og for at arbejde med filer: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesGetFulltesathPName,WFiath,WF leW , MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.


Dette eliminerer behovet for \\?\-præfikset og giver potentielt applikationer, der kører direkte eller indirekte gennem Win API'et, en chance for at få støtte til lange stier uden at skulle genopbygge dem. Hvordan man aktiverer denne funktion er beskrevet i slutningen af ​​artiklen.

.Net Framework

Selvom .Net Framework bruger Win API til at arbejde med filer, ville den tidligere ændring ikke have givet resultater, fordi BCL-koden har indbyggede foreløbige kontroller for tilladeligheden af ​​længden af ​​mappe- og filnavne, og den nåede ikke engang til det punkt, hvor Win API-funktioner blev kaldt, hvilket medførte en kendt undtagelse. På grund af talrige anmodninger fra fællesskabet (mere end 4500 på UserVoice), i version 4.6.2, blev kontroller for stilængdebegrænsninger fjernet fra BCL-koden, hvilket overlod dette til operativsystemet og filsystemerne!

Her er hvad det giver:

  • Ved at bruge præfikset "\\?\" kan vi arbejde med lange stier som i Win API, Directory.CreateDirectory("\\\\?\\" + long_dir_name);
  • Hvis du aktiverer indbygget understøttelse af lange filnavne i Windows 10 (1607), behøver du ikke engang at bruge et præfiks!
Sådan tænder du det:
  • Brug .Net Framework 4.6.2 som mål, når du bygger applikationen.
  • Brug f.eks. en konfigurationsfil, hvis applikationen allerede er bygget under .Net 4.0:

.Net Core

Her blev støtte til lange veje annonceret tilbage i november 2015. Tilsyneladende havde projektets Open Source-karakter og manglen på et strengt behov for at sikre bagudkompatibilitet en indflydelse.

Sådan tænder du det:
Alt fungerer ud af kassen. I modsætning til implementeringen i .Net Framework, er der ingen grund til at tilføje præfikset "\\?\" - det tilføjes automatisk, hvis det er nødvendigt.

Her kan du se et eksempel.

Sådan aktiverer du understøttelse af lange stier i Windows 10 (1607)

Denne funktion er deaktiveret som standard. Dette skyldes, at denne funktion er eksperimentel, og forskellige undersystemer og applikationer skal udvikles for fuld support.

Du kan aktivere indbygget understøttelse af lange stier ved at oprette eller ændre følgende systemregistreringsparameter: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled parameter (Type: REG_DWORD) 1 – svarer til den aktiverede værdi.

Eller gennem gruppepolitikker (Win+R\gpedit.msc) Computerkonfiguration > Administrative skabeloner > System > Filsystem > Aktiver NTFS lange stier. Det er det samme i en lokaliseret version: Computerkonfiguration > Administrative skabeloner > System > Filsystem > Aktiver Win32 Long Paths.

Yderligere er kilder uenige med hensyn til manifestet (eller jeg har misforstået det, men i øjeblikket har jeg ingen mulighed for at tjekke). For eksempel angiver MSDN-dokumentationen, at et manifest kan bruges som en alternativ måde at muliggøre langvejsunderstøttelse i individuelle applikationer, og MSDN-bloggen angiver, at dette er det andet nødvendige trin efter at have aktiveret det i politikker.
Men de er enige i formatet for at specificere denne mulighed:

rigtigt
Desværre vil dette ikke fungere med CMD i øjeblikket på grund af det særlige ved at arbejde med stier, men i PowerShell burde alt fungere.

P.S.

Dette afslutter mit lille fredagsindlæg og udelader spørgsmålene om fuldstændigheden af ​​implementeringen af ​​understøttelse af lange veje i Windows 10 (1607), eller ydeevne ved brug af forskellige kombinationer af Windows-udgaver, filsystemer og API'er. Indlægget vil blive opdateret, efterhånden som nye fakta og eksperimentelle resultater bliver tilgængelige.

Tak for din opmærksomhed!

Folder "AppData" indeholder brugeroplysninger om forskellige applikationer (historik, indstillinger, sessioner, bogmærker, midlertidige filer osv.). Med tiden bliver den tilstoppet med forskellige data, som måske ikke længere er nødvendige, men kun optager diskplads. I dette tilfælde giver det mening at rense denne mappe. Derudover, hvis brugeren, når han geninstallerer operativsystemet, vil gemme de indstillinger og data, han brugte i forskellige programmer tidligere, skal han overføre indholdet af denne mappe fra det gamle system til det nye ved at kopiere det. Men først skal du finde ud af, hvor den er placeret. Lad os finde ud af, hvordan du gør dette på computere, der kører Windows 7-operativsystemet.

Navn "AppData" står for "applikationsdata", det vil sige oversat til russisk betyder "applikationsdata". Faktisk havde denne mappe i Windows XP sit fulde navn, som i senere versioner blev forkortet til dets nuværende navn. Som nævnt ovenfor indeholder denne mappe data, der akkumuleres under driften af ​​applikationsprogrammer, spil og andre applikationer. Der kan være mere end én mappe med dette navn på din computer, men flere. Hver af dem svarer til en separat oprettet brugerkonto. I kataloget "AppData" Der er tre undermapper:

  • "Lokal";
  • "LocalLow";
  • "Roaming".

Hver af disse undermapper indeholder mapper, hvis navne er identiske med navnene på de tilsvarende applikationer. Disse mapper bør renses for at frigøre diskplads.

Aktiver synligheden af ​​skjulte mapper

Du skal vide, at mappen "AppData» skjult som standard. Dette gøres for at forhindre, at uerfarne brugere ved en fejl sletter vigtige data indeholdt i den eller dens helhed. Men for at finde denne mappe skal vi aktivere synligheden af ​​skjulte mapper. Før du går videre til detektionsmetoder "AppData", lad os finde ud af, hvordan du gør dette. Der er flere muligheder for at aktivere synligheden af ​​skjulte mapper og filer. De brugere, der ønsker at sætte sig ind i dem, kan gøre det ved at bruge en separat artikel på vores hjemmeside. Her vil vi kun overveje én mulighed.


Visning af skjulte mapper vil blive aktiveret.

Metode 1: Søg programmer og filer felt

Lad os nu gå direkte til de måder, hvorpå du kan flytte til den ønskede mappe eller finde, hvor den er placeret. Hvis du skal gå til "AppData" nuværende bruger, så kan dette gøres ved hjælp af feltet "Find programmer og filer", som er placeret i menuen "Start".


Direkte til kataloget "AppData" du kan komme direkte dertil ved at indtaste et udtryk i feltet "Find programmer og filer".


Metode 2: Kør Værktøj

En meget lignende algoritme til at åbne en mappe "AppData" kan gøres ved hjælp af systemværktøjet "Løb". Denne metode, ligesom den forrige, er velegnet til at åbne en mappe til den konto, som brugeren i øjeblikket arbejder under.


På samme måde med den tidligere metode kan du straks komme til mappen "AppData".


Metode 3: Gå gennem Explorer

Sådan finder du adressen og kommer ind i mappen "AppData", beregnet til den konto, som brugeren i øjeblikket arbejder på, fandt vi ud af det. Men hvad nu hvis du har brug for at åbne en mappe "AppData" til en anden profil? For at gøre dette skal du lave overgangen direkte igennem "Leder" eller indtast den nøjagtige lokationsadresse, hvis du allerede kender den, i adresselinjen "Leder". Problemet er, at for hver enkelt bruger, afhængig af systemindstillingerne, placeringen af ​​Windows og navnene på konti, vil denne sti være anderledes. Men det generelle mønster af stien til den mappe, hvor den ønskede mappe er placeret, vil se sådan ud:

(systemdrev):\Brugere\(brugernavn)


Der er flere muligheder for at komme ind i mappen "AppData" og find ud af dens placering i Windows 7. Dette kan gøres som en direkte overgangsmetode ved hjælp af "Leder", og ved at introducere kommandoudtryk i felterne af nogle systemværktøjer. Det er vigtigt at vide, at der kan være flere mapper med et lignende navn, i overensstemmelse med navnene på de konti, der oprettes i systemet. Derfor skal du straks forstå, hvilken mappe du vil gå til.

Dette afsnit omhandler:
  • Platforme: Solaris SPARC, Red Hat Linux, SUSE Linux, Oracle Linux, Windows 10, Windows 8, Windows 7, Vista, Windows XP, Mac OS X

Instruktionerne på denne side er kun beregnet til erfarne brugere og systemadministratorer.


Generel information

  • Variabel STI er en systemvariabel, som operativsystemet bruger til at finde de ønskede eksekverbare objekter på kommandolinjen eller terminalvinduet.
  • Systemvariabel STI kan indstilles vha systemværktøj i Windows Kontrolpanel eller ved hjælp af Linux- og Solaris-shell-startfilen.
  • På computere, der kører Windows eller Mac OS X foretage ændringer i PATH-systemvariablen normalt ikke påkrævet.

Windows

Windows 10 og Windows 8
  1. I linjen "Søg" skal du søge efter: System (kontrolpanel)
  2. Klik på linket.
  3. Klik miljøvariabler. I kapitel miljøvariabler Lave om
  4. I vinduet (eller Ny systemvariabel Okay Okay.
Windows 7
  1. Højreklik på ikonet på skrivebordet Computer.
  2. Vælg fra kontekstmenuen Ejendomme.
  3. Klik på linket Avancerede systemindstillinger.
  4. Klik miljøvariabler. I kapitel miljøvariabler vælg miljøvariablen PATH. Klik Lave om. Hvis PATH-variablen ikke findes, skal du klikke på Opret.
  5. I vinduet Ændring af en systemvariabel(eller Ny systemvariabel) angiv værdien af ​​PATH-miljøvariablen. Klik Okay. Luk andre åbne vinduer ved at klikke Okay.
  6. Åbn kommandopromptvinduet igen, og kør java-koden.
Windows XP
  1. Klik Start, Vælg Kontrolpanel, dobbeltklik på System og vælg en fane Derudover.
  2. Klik miljøvariabler. I kapitel miljøvariabler vælg miljøvariablen PATH. Klik Lave om. Hvis PATH-variablen ikke findes, skal du klikke på Opret.
  3. I vinduet Ændring af en systemvariabel(eller Ny systemvariabel) angiv værdien af ​​PATH-miljøvariablen. Klik Okay. Luk andre åbne vinduer ved at klikke Okay.
  4. Åbn kommandopromptvinduet igen, og kør java-koden.

Mac OS X

For at køre en anden version af Java skal du angive den fulde sti eller bruge java_home-værktøjet:

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

Solaris og Linux

  1. For at se, om stien er konfigureret korrekt:
    I terminalvinduer skal du indtaste:
    % java -version
    Versionen af ​​java-værktøjet vil blive vist, hvis den ikke kan findes. Hvis versionen er forældet, eller der vises en fejl java: kommando ikke fundet, så er stien indstillet forkert.
  2. Bestem, hvilken eksekverbar version af java, der er den første, der findes i en variabel STI
    Indtast i et terminalvindue:
    % som java
Endelig sti opsætning

For at indstille stien permanent skal du konfigurere den i startfilen.
Bemærk. Der findes instruktioner til de to mest populære skaller på Linux og Solaris. Hvis du bruger andre skaller, se selvstudiet om indstilling af PATH-variablen.

Bash shell

Rediger startfilen (~/.bashrc)

  1. Skift en variabel STI variabel
    PATH=/usr/local/jdk1.8.0/bin:$PATH
    eksport PATH
  2. Download startfilen
    %. /.profil

  3. % java -version
C shell (csh)

Rediger startfilen (~/.cshrc)

  1. Sæt stien
    set path=(/usr/local/jdk1.8.0/bin $path)
  2. Gem ændringer og luk vinduet
  3. Download startfilen
    % kilde ~/.cshrc
  4. Sørg for, at stien er indstillet ved at gentage java-kommandoen
    % java -version

Stien til en specificeret fil består af en eller flere komponenter adskilt af et specialtegn (backslash), hvor hver komponent typisk er et mappenavn eller filnavn, men med nogle bemærkelsesværdige undtagelser beskrevet nedenfor. Dette er ofte afgørende for at fortolke et stisystem: hvordan begyndelsen eller præfikset på en sti ser ud. Dette præfiks angiver det navneområde, stien bruger, og desuden hvilke specialtegn, der bruges på hvilken position i stien, inklusive det sidste tegn.

Hvis stikomponenten er et filnavn, skal den være den sidste komponent.

Hver stikomponent vil også være begrænset af den maksimale længde, der er angivet for det specifikke filsystem. Generelt falder disse regler i to kategorier: korte og lange. Bemærk, at mappenavne gemmes i filsystemet som en speciel filtype, men navngivningskonventionerne for filer gælder også for mappenavne. Så en sti er simpelthen en strengrepræsentation af hierarkiet mellem alle de mapper, der findes for et bestemt fil- eller biblioteksnavn.

Fuld og relative veje

For Windows API-funktioner, der manipulerer filer, kan filnavne ofte være i forhold til den aktuelle mappe, mens nogle API'er kræver den fulde sti. Filnavnet refererer til den aktuelle mappe, medmindre den begynder med følgende:

  • Et UNC-navn i ethvert format, der altid begynder med to omvendte skråstreg ("\\").
  • En drevbetegnelse efterfulgt af en omvendt skråstreg, såsom "C:\" eller "d:\".
  • En enkelt omvendt skråstreg, såsom "directory\" eller "\file.txt" Dette kaldes også en absolut sti.
Hvis et filnavn kun begynder med en drevmarkør, men ikke med en omvendt skråstreg efter et kolon, fortolkes det som en relativ sti til den aktuelle mappe på det angivne drevbogstav. Bemærk, at den aktuelle mappe muligvis er rodmappen, afhængigt af hvad den blev indstillet til under den sidste "skift mappe"-handling på det pågældende drev. Eksempler på dette format ser således ud:
  • "C:tmp.txt" refererer til en fil med navnet "tmp.txt" i den aktuelle mappe på C-drevet.
  • "C:tempdir\tmp.txt" refererer til en fil i en undermappe af den aktuelle mappe på C-drevet.
En sti betragtes også som relativ, hvis den indeholder "to punkter"; det vil sige to perioder sammen i én stikomponent. Denne specielle qualifier bruges til at udpege mappen over den aktuelle mappe, ellers kendt som "overordnet mappe". Eksempler på dette format ser således ud:
  • "..\tmp.txt" peger på en fil med navnet tmp.txt, som er placeret i det overordnede bibliotek i den aktuelle mappe.
  • "..\..\tmp.txt" peger på en fil, der er placeret to mapper over den aktuelle mappe.
  • "..\tempdir\tmp.txt" angiver en fil ved navn tmp.txt, der er placeret i en mappe ved navn tempdir i samme mappe i den aktuelle mappe.
Relative stier kan kombinere begge typer eksempler, for eksempel "C:..\tmp.txt". Dette er nyttigt, fordi mens systemet holder styr på det aktuelle drev sammen med drevets aktuelle bibliotek, holder det også styr på de aktuelle mapper i hver af de forskellige drevbogstaver (hvis dit system har mere end ét), uanset hvilket drev der er angivet som det aktuelle drev.

Maksimal vejlængdegrænse

I Windows API (med nogle undtagelser, der vil blive diskuteret i de følgende afsnit), er der en maksimal stilængde i max_path, der er defineret som 260 tegn. Den lokale sti er struktureret i følgende rækkefølge: drevbogstav, kolon, omvendt skråstreg, navnekomponenter adskilt af omvendte skråstreg og et afsluttende null-tegn. For eksempel er den maksimale sti til drev D "D:\nogle 256-tegns stistreng", hvor " " repræsenterer et usynligt NULL-tegn for den aktuelle systemkodetabel. (Tegnerne bruges her for overskuelighed og kan ikke være en del af en gyldig stistreng.)

Fil-I/O-funktionerne i Windows API konverterer "/" til "\" som en del af navnekonvertering til et NT-typenavn, medmindre præfikset "\\?\" bruges.

Der er mange funktioner i Windows API, der også har Unicode-versioner for at tillade udvidede sti-længder for en maksimal total sti-længde på 32.767 tegn. Denne stitype består af komponenter adskilt af omvendte skråstreg, hver op til den værdi, der returneres i parameteren Lpmaximumcomponentlength i GetVolumeInformation-funktionen (denne værdi er typisk 255 tegn). For at angive en forlænget længdesti, brug "\\?\" præfikset. For eksempel?\\" ?\D:\meget_lang_sti".

Bemærk, at den maksimale sti på 32.767 tegn er omtrentlig, fordi "\\?\"-præfikset kan udvides til en længere streng af systemet under kørsel, og denne udvidelse anvendes på den samlede længde.

Det samme præfiks kan også bruges med stier bygget i henhold til Universal Navnekonventionen (UNC). For at angive en sådan sti ved hjælp af UNC, brug "\\?\UNC\". For eksempel?\\",\UNC-sti\\server\share", hvor "server" er navnet på computeren og "share" er navnet på den delte mappe. Disse præfikser bruges ikke som en del af selve stien. De angiver, at stien skal sendes til systemet med minimal modifikation, hvilket betyder, at du ikke kan bruge skråstreger til at repræsentere sti-separatorer, eller en prik til at repræsentere den aktuelle mappe, eller dobbelte prikker til at repræsentere den overordnede mappe. Da du ikke kan bruge præfikset "\\?\" med en relativ sti, er relative stier altid begrænset til i alt MAX_PATH tegn.

Der er ingen grund til at gøre noget for at normalisere Unicode i sti- og filnavnestrengene for Windows-fil I/O API-funktionerne, fordi filsystemet behandler stien og filnavnene som en sekvens af wchar-værdier. Enhver normalisering, der kræves til din applikation, skal udføres med dette i tankerne, eksternt i forhold til eventuelle opkald til Windows I/O API-funktionsfilen.

Når du bruger API'et til at oprette en mappe, kan den angivne sti ikke være så lang, at 8.3-filnavnet ikke kan tilføjes (det vil sige, at mappenavnet ikke må overstige MAX_PATH minus 12).

Skallen og filsystemet har forskellige krav. Det er muligt at oprette en sti med Windows API, som shell-brugergrænsefladen ikke er i stand til at fortolke korrekt.

Fra og med Windows 10 version 1607 er MAX_PATH-begrænsninger blevet fjernet fra delte Win32-fil- og funktionsmapper. Det er dog nødvendigt at vælge en ny adfærd. Registreringsdatabasen giver dig mulighed for at aktivere eller deaktivere den nye lange vejadfærd. For at aktivere lange stier skal du indstille registreringsdatabasenøglen til

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: reg_dword). Nøgleværdien cachelagres af systemet (pr. proces) efter det første kald til en Win32-fil eller biblioteksfunktion. Registreringsnøglen vil ikke blive genindlæst i hele processens levetid. En genstart kan være påkrævet for at alle programmer på systemet kan genkende nøglens værdi, fordi nogle processer kan være startet, før nøglen blev sat.

Du kan også aktivere den nye langvejsadfærd på en app-basis via manifestet:

rigtigt Disse er mappestyringsfunktionerne, der ikke vil have en max_path-grænse, hvis du aktiverer lange stier: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.