Det er det den gjør. Hvor brukes Windows-miljøvariabler?

God ettermiddag, kjære lesere og gjester på bloggen, i dag vil jeg diskutere dette emnet med dere: hva er Windows-miljøvariabler, hvor kan de brukes, både i normal brukerpraksis og i praksisen til en systemadministrator, vil jeg gi du noen eksempler. Hvordan hele denne greia er konfigurert og endret for å passe dine behov, etter min mening er dette grunnleggende kunnskap, hvis forståelse vil bedre vise deg prinsippet om drift av operativsystemene til Windows-familien.

Hva er Windows-miljøvariabler

La oss forstå konseptet, og så miljøvariabel (miljøvariabel) dette er en spesiell type lenker av redusert størrelse til visse objekter i Windows-operativsystemet, brukt av forskjellige programmer for å lagre informasjon og samhandle med den. En analogi kan trekkes med relative lenker på nettsteder der det ikke er noen eksplisitt indikasjon på protokollen. Oftest er dette stier til bestemte kataloger i operativsystemet.

Hvor brukes Windows-miljøvariabler?

La meg gi deg noen eksempler:

  • I skript > når for eksempel hver bruker må gjøre en form for innstilling, for eksempel legge en ny mappe med dokumenter på skrivebordet. Siden hver bruker har sin egen bane til skrivebordet, som C:\Users\lacky\Desktop, og du også kan få tilgang til den relative banen ved å bruke %HOMEPATH%-variabelen, hvis du skriver inn %HOMEPATH%\Desktop i Explorer, vil du bli tatt til den gjeldende brukerens tabell på skrivebordet.

  • i gruppepolicy for å konfigurere brukermiljøer, for eksempel roamingprofiler.
  • Kodeoptimalisering > Hvis koden din veldig ofte bruker de samme fil- eller mappebanene, samt registernøkler, kan du enkelt tilordne en kort variabel for videre bruk. Nedenfor vil jeg gi deg en oppsummeringsliste over miljøvariabler i Windows 10 og tidligere versjoner, og jeg vil også vise deg hvordan du oppretter og endrer dem.

Alle miljøvariabler av Windows 10 og andre versjoner inkluderer spesiell operatør%. Det er nødvendig slik at operativsystemet kan behandle søkeforespørselen. Et enkelt eksempel: du leter etter TEMP-mappen og ikke vet hvor den ligger, skriv inn %TEMP% og søket vil være på alle lokale stasjoner og partisjoner.

Liste over Windows 10 miljøvariabler

Listen ovenfor er fullt egnet for både Windows 7 og Windows 8.1, alt har blitt personlig verifisert. Jeg er sikker på at denne kunnskapen i stor grad vil hjelpe deg med å optimalisere arbeidet ditt.

  • %ALLUSERSPROFILE% > denne variabelen vil sende deg til mappen C:\ProgramData
  • %windir% > dette er mappen C:\Windows
  • %APPDATA% > du er i den skjulte mappen C:\Users\Username\AppData\Roaming
  • %CommonProgramFiles% > mappe C:\Program Files\Common Files
  • %CommonProgramFiles(x86)% > tar deg til C:\Program Files (x86)\Common Files
  • %CommonProgramW6432% > vil omdirigere deg til C:\Program Files\Common Files
  • %COMPUTERNAME% > Datamaskinnavn, brukt i skript
  • %ComSpec%> vil åpne Windows 10-ledeteksten C:\Windows\system32\cmd.exe
  • %HOMEDRIVE% > bane til stasjon C:
  • %HOMEPATH% > denne Windows-miljøvariabelen tar deg til brukermappen \Brukere\Brukernavn
  • %LOCALAPPDATA% > denne Windows-miljøvariabelen tar deg til mappen C:\Users\Username\AppData\Local
  • %LOGONSERVER% > Datamaskinnavn
  • %NUMBER_OF_PROCESSORS% > Antall_prosessorer
  • %OS% > Windows_NT, også brukt i skript
  • %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 Stepping 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 veldig raskt
  • %PUBLIC% > C:\Users\Public
  • %SystemDrive% > stasjon C:
  • %SystemRoot% > C:\Windows
  • %TEMP% >
  • %TMP% > C:\Brukere\Brukernavn\AppData\Local\Temp (standard)
  • %USERDOMAIN% > Datamaskinnavn
  • %USERDOMAIN_ROAMINGPROFILE% > Datamaskinnavn
  • %USERNAME% > Brukernavn
  • %USERPROFILE% > C:\Brukere\Brukernavn

Slik viser du alle Windows-variabler

I Windows 10 og andre versjoner kan du vise en liste over alle Windows-miljøvariabler ved å åpne en ledetekst som administrator og skrive inn SET-kommandoen. Som et resultat vil du få alle standard Windows 10 miljøvariabler for et spesifikt operativsystem.

For enkelhets skyld kan du eksportere hele denne listen til en tekstfil, for å gjøre dette, skriv inn:

set > D:\Variables.txt

Her er innholdet i dette dokumentet.

En annen metode for å vise operativsystemvariabler er Windows-registeret. Trykk WIN+R og skriv inn regedit. Gå til grenen i Registerredigeringsvinduet som åpnes:

For å se variabler for datamaskinen

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

For å vise variabler for en bruker

HKEY_CURRENT_USER\Environment

Lag Windows 10 miljøvariabler

I tillegg til eksisterende Windows 10-variabler kan du lage nye, dette er veldig enkelt og er ikke forbudt. Det som kreves av deg, må du gå til systemegenskaper. Det er flere metoder, hvis vi snakker om Windows 10, kan du gjøre det ved å høyreklikke på "Start" -knappen og velge System.

En universell metode er å gå til egenskapene til datamaskinen min eller trykke på tastekombinasjonen WIN+Pause Breake.

Fra systemegenskaper-vinduet bør du gå til "Avanserte systeminnstillinger"

Og her er to typer Windows-miljøvariabler:

  • Midlertidige variabler temp
  • Systemvariabler

Begge kan enkelt endres eller opprettes.

For eksempel vil jeg lage en ny systemvariabel, kalle den SYSPREP og spesifisere banen til mappen C:\Windows\System32\Sysprep

Som du kan se, er det ikke noe komplisert her; takket være ting som dette kan du forenkle livet ditt og spare mye tid.

Mange Windows PC-brukere, for ikke å snakke om utviklere, er kjent med problemer når de arbeider med lange (mer enn 260 tegn, MAX_PATH) fil- eller katalogstier.

Denne artikkelen diskuterer måter å bli kvitt denne relikvien når du utvikler applikasjoner på ulike plattformer (WinApi, .Net Framework, .Net Core) og aktiverer innebygd støtte for lange baner i Windows 10 (jubileumsoppdatering).

Vinn API-applikasjoner

I applikasjoner som bruker Win API for å jobbe med filer, har oppskriften for å bli kvitt MAX_PATH-begrensningen vært kjent siden uminnelige tider - det var nødvendig å bruke Unicode-versjonen av funksjonen med slutten "W" for å jobbe med en katalog eller fil og start banen med prefikset \\?\. Dette gjorde det mulig å bruke stier på opptil 32767 tegn.

I Windows 10 (1607) har oppførselen til funksjoner for arbeid med filer endret seg: det er nå mulig å deaktivere kontroll av MAX_PATH-restriksjoner på systemnivå.

Dette påvirket følgende funksjoner:

Slik jobber du med kataloger: CreateDirectoryW, CreateDirectoryExW, GetCurrentDirectoryW, RemoveDirectoryW, SetCurrentDirectoryW. Og for å jobbe med filer: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesGetFtExW,PFileNavn,WLFile,WL leW , MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.


Dette eliminerer behovet for prefikset \\?\ og gir potensielt applikasjoner som kjører direkte eller indirekte gjennom Win API en sjanse til å få støtte for lange baner uten å måtte bygge dem om. Hvordan du aktiverer denne funksjonen er beskrevet på slutten av artikkelen.

.Net Framework

Selv om .Net Framework bruker Win API for å jobbe med filer, ville den forrige endringen ikke ha gitt resultater, fordi BCL-koden har innebygde foreløpige kontroller for tillatelsen til lengden på katalog- og filnavn, og den kom ikke engang til poenget med å kalle Win API-funksjoner, noe som gir et kjent unntak. På grunn av mange forespørsler fra fellesskapet (mer enn 4500 på UserVoice), i versjon 4.6.2, ble sjekker for banelengdebegrensninger fjernet fra BCL-koden, og overlot dette til operativsystemet og filsystemene!

Her er hva det gir:

  • Ved å bruke prefikset "\\?\" kan vi jobbe med lange baner som i Win API, Directory.CreateDirectory("\\\\?\\" + long_dir_name);
  • Hvis du aktiverer innebygd støtte for lange filnavn i Windows 10 (1607), trenger du ikke engang å bruke et prefiks!
Slik slår du den på:
  • Bruk .Net Framework 4.6.2 som mål når du bygger applikasjonen.
  • Bruk en konfigurasjonsfil, for eksempel hvis applikasjonen allerede er bygget under .Net 4.0:

.Net Core

Her ble det annonsert støtte for lange veier tilbake i november 2015. Tilsynelatende hadde prosjektets åpen kildekode og mangelen på et strengt behov for å sikre bakoverkompatibilitet en innvirkning.

Slik slår du den på:
Alt fungerer ut av esken. I motsetning til implementeringen i .Net Framework, er det ikke nødvendig å legge til prefikset "\\?\" - det legges til automatisk om nødvendig.

Her kan du se et eksempel.

Slik aktiverer du støtte for lange baner i Windows 10 (1607)

Denne funksjonen er deaktivert som standard. Dette er fordi denne funksjonen er eksperimentell og ulike undersystemer og applikasjoner må utvikles for full støtte.

Du kan aktivere innebygd støtte for lange baner ved å opprette eller endre følgende systemregisterparameter: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled parameter (Type: REG_DWORD) 1 – tilsvarer den aktiverte verdien.

Eller gjennom gruppepolicyer (Win+R\gpedit.msc) Datamaskinkonfigurasjon > Administrative maler > System > Filsystem > Aktiver NTFS lange baner. Det er det samme i en lokalisert versjon: Datamaskinkonfigurasjon > Administrative maler > System > Filsystem > Aktiver Win32 Long Paths.

Videre er kilder uenige angående manifestet (eller jeg har misforstått, men for øyeblikket har jeg ingen måte å sjekke). MSDN-dokumentasjonen sier for eksempel at et manifest kan brukes som en alternativ måte å aktivere lang vei-støtte i individuelle applikasjoner, og MSDN-bloggen sier at dette er det andre nødvendige trinnet etter å ha aktivert det i policyer.
Men de er enige i formatet for å spesifisere dette alternativet:

ekte
Dessverre vil dette ikke fungere med CMD for øyeblikket, på grunn av særegenhetene ved å jobbe med baner, men i PowerShell skal alt fungere.

P.S.

Dette avslutter mitt lille fredagsinnlegg, og utelater spørsmålene om fullstendigheten av implementeringen av støtte for lange baner i Windows 10 (1607), eller ytelse ved bruk av ulike kombinasjoner av Windows-utgaver, filsystemer og APIer. Innlegget vil bli oppdatert etter hvert som nye fakta og eksperimentelle resultater blir tilgjengelige.

Takk for din oppmerksomhet!

Mappe "AppData" inneholder brukerinformasjon for ulike applikasjoner (historikk, innstillinger, økter, bokmerker, midlertidige filer, etc.). Over tid blir den tilstoppet med ulike data som kanskje ikke lenger er nødvendige, men som bare tar opp diskplass. I dette tilfellet er det fornuftig å rense ut denne katalogen. I tillegg, hvis brukeren, når han installerer operativsystemet på nytt, ønsker å lagre innstillingene og dataene han brukte i forskjellige programmer tidligere, må han overføre innholdet i denne katalogen fra det gamle systemet til det nye ved å kopiere det. Men først må du finne hvor den ligger. La oss finne ut hvordan du gjør dette på datamaskiner som kjører Windows 7-operativsystemet.

Navn "AppData" står for "applikasjonsdata", det vil si at oversatt til russisk betyr "applikasjonsdata". Faktisk, i Windows XP hadde denne katalogen sitt fulle navn, som i senere versjoner ble forkortet til det nåværende navnet. Som nevnt ovenfor inneholder denne mappen data som akkumuleres under driften av applikasjonsprogrammer, spill og andre applikasjoner. Det kan være mer enn én katalog med dette navnet på datamaskinen din, men flere. Hver av dem tilsvarer en egen brukerkonto opprettet. I katalogen "AppData" Det er tre underkataloger:

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

Hver av disse underkatalogene inneholder mapper hvis navn er identiske med navnene på de tilsvarende applikasjonene. Disse katalogene bør renses for å frigjøre diskplass.

Aktiver synlighet av skjulte mapper

Du bør vite at katalogen "AppData» skjult som standard. Dette gjøres for å forhindre at uerfarne brukere feilaktig sletter viktige data i den eller dens helhet. Men for å finne denne mappen, må vi aktivere synligheten til skjulte mapper. Før du går videre til deteksjonsmetoder "AppData", la oss finne ut hvordan du gjør dette. Det er flere alternativer for å aktivere synligheten av skjulte mapper og filer. De brukerne som ønsker å gjøre seg kjent med dem kan gjøre det ved å bruke en egen artikkel på nettsiden vår. Her vil vi kun vurdere ett alternativ.


Visning av skjulte mapper vil bli aktivert.

Metode 1: Søk etter programmer og filer

La oss nå gå direkte til måtene du kan flytte til ønsket katalog eller finne hvor den ligger. Hvis du trenger å gå til "AppData" nåværende bruker, så kan dette gjøres ved hjelp av feltet "Finn programmer og filer", som ligger i menyen "Start".


Direkte til katalogen "AppData" du kommer direkte dit ved å skrive inn et uttrykk i feltet "Finn programmer og filer".


Metode 2: Kjør verktøyet

En veldig lik algoritme for å åpne en katalog "AppData" kan gjøres ved hjelp av systemverktøyet "Løpe". Denne metoden, som den forrige, er egnet for å åpne en mappe for kontoen som brukeren jobber under.


På samme måte som den forrige metoden kan du umiddelbart komme til mappen "AppData".


Metode 3: Gå gjennom Explorer

Hvordan finne ut adressen og komme inn i mappen "AppData", beregnet på kontoen der brukeren jobber for øyeblikket, fant vi ut av det. Men hva om du trenger å åpne en katalog "AppData" for en annen profil? For å gjøre dette, må du gjøre overgangen direkte gjennom "Dirigent" eller skriv inn den nøyaktige posisjonsadressen, hvis du allerede vet den, i adressefeltet "Dirigent". Problemet er at for hver enkelt bruker, avhengig av systeminnstillingene, plasseringen av Windows og navnene på kontoene, vil denne banen være forskjellig. Men det generelle mønsteret av banen til katalogen der den ønskede mappen ligger, vil se slik ut:

(systemstasjon):\Brukere\(brukernavn)


Det er flere alternativer for å komme inn i mappen "AppData" og finn ut plasseringen i Windows 7. Dette kan gjøres som en direkte overgangsmetode ved hjelp av "Dirigent", og ved å introdusere kommandouttrykk i feltene til noen systemverktøy. Det er viktig å vite at det kan være flere mapper med lignende navn, i samsvar med navnene på kontoene som opprettes i systemet. Derfor må du umiddelbart forstå hvilken katalog du vil gå til.

Denne delen gjelder:
  • Plattformer: Solaris SPARC, Red Hat Linux, SUSE Linux, Oracle Linux, Windows 10, Windows 8, Windows 7, Vista, Windows XP, Mac OS X

Instruksjonene på denne siden er kun ment for erfarne brukere og systemadministratorer.


Generell informasjon

  • Variabel STI er en systemvariabel som operativsystemet bruker for å finne de ønskede kjørbare objektene på kommandolinjen eller terminalvinduet.
  • Systemvariabel STI kan stilles inn ved hjelp av systemverktøy i Windows Kontrollpanel eller ved å bruke Linux- og Solaris-shell-oppstartsfilen.
  • På datamaskiner som kjører Windows eller Mac OS X gjør endringer i PATH-systemvariabelen vanligvis ikke nødvendig.

Windows

Windows 10 og Windows 8
  1. I "Søk"-linjen, søk etter: System (Kontrollpanel)
  2. Klikk på lenken.
  3. Klikk Miljøvariabler. I kapittel Miljøvariabler Endring
  4. I vinduet (eller Ny systemvariabel OK OK.
Windows 7
  1. Høyreklikk på ikonet på skrivebordet Datamaskin.
  2. Velg fra kontekstmenyen Egenskaper.
  3. Klikk på lenken Avanserte systeminnstillinger.
  4. Klikk Miljøvariabler. I kapittel Miljøvariabler velg PATH-miljøvariabelen. Klikk Endring. Hvis PATH-variabelen ikke eksisterer, klikker du på Opprett.
  5. I vinduet Endre en systemvariabel(eller Ny systemvariabel) spesifiser verdien til PATH-miljøvariabelen. Klikk OK. Lukk andre åpne vinduer ved å klikke OK.
  6. Åpne ledetekstvinduet på nytt og kjør java-koden.
Windows XP
  1. Klikk Start, plukke ut Kontrollpanel, dobbeltklikk på System og velg en fane I tillegg.
  2. Klikk Miljøvariabler. I kapittel Miljøvariabler velg PATH-miljøvariabelen. Klikk Endring. Hvis PATH-variabelen ikke eksisterer, klikker du på Opprett.
  3. I vinduet Endre en systemvariabel(eller Ny systemvariabel) spesifiser verdien til PATH-miljøvariabelen. Klikk OK. Lukk andre åpne vinduer ved å klikke OK.
  4. Åpne ledetekstvinduet på nytt og kjør java-koden.

Mac OS X

For å kjøre en annen versjon av Java, oppgi hele banen eller bruk java_home-verktøyet:

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

Solaris og Linux

  1. For å se om banen er riktig konfigurert:
    I terminalvinduer skriver du inn:
    % java -versjon
    Versjonen av java-verktøyet vil vises hvis den ikke blir funnet. Hvis versjonen er utdatert eller en feil vises java: kommando ikke funnet, da er banen feil angitt.
  2. Bestem hvilken kjørbar versjon av java som er den første som finnes i en variabel STI
    I et terminalvindu skriver du inn:
    % som java
Endelig baneoppsett

For å angi banen permanent, konfigurer den i oppstartsfilen.
Merk. Instruksjoner er gitt for de to mest populære skallene på Linux og Solaris. Hvis du bruker andre skjell, se veiledningen om innstilling av PATH-variabelen.

Bash-skall

Rediger oppstartsfilen (~/.bashrc)

  1. Endre en variabel STI variabel
    PATH=/usr/local/jdk1.8.0/bin:$PATH
    eksport PATH
  2. Last ned oppstartsfilen
    %. /.profil

  3. % java -versjon
C-skall (csh)

Rediger oppstartsfilen (~/.cshrc)

  1. Sett banen
    set path=(/usr/local/jdk1.8.0/bin $path)
  2. Lagre endringer og lukk vinduet
  3. Last ned oppstartsfilen
    % kilde ~/.cshrc
  4. Sørg for at banen er satt ved å gjenta java-kommandoen
    % java -versjon

Banen til en spesifisert fil består av en eller flere komponenter atskilt med et spesialtegn (omvendt skråstrek), hvor hver komponent vanligvis er et katalognavn eller filnavn, men med noen bemerkelsesverdige unntak beskrevet nedenfor. Dette er ofte avgjørende for å tolke et stisystem: hvordan begynnelsen eller prefikset til en sti ser ut. Dette prefikset spesifiserer navneområdet som banen bruker, og i tillegg hvilke spesialtegn som brukes på hvilken posisjon i banen, inkludert det siste tegnet.

Hvis banekomponenten er et filnavn, må den være den siste komponenten.

Hver banekomponent vil også være begrenset av den maksimale lengden som er spesifisert for det spesifikke filsystemet. Generelt faller disse reglene inn i to kategorier: korte og lange. Merk at katalognavn lagres i filsystemet som en spesiell filtype, men navnekonvensjonene for filer gjelder også katalognavn. Så en bane er ganske enkelt en strengrepresentasjon av hierarkiet mellom alle katalogene som finnes for en bestemt fil eller katalognavn.

Fulle og relative stier

For Windows API-funksjoner som manipulerer filer, kan filnavn ofte være i forhold til gjeldende katalog, mens noen APIer krever hele banen. Filnavnet refererer til gjeldende katalog med mindre det begynner med følgende:

  • Et UNC-navn i et hvilket som helst format som alltid begynner med to skråstreker ("\\").
  • En stasjonsbetegnelse etterfulgt av en omvendt skråstrek, for eksempel "C:\" eller "d:\".
  • En enkelt omvendt skråstrek, for eksempel "katalog\" eller "\file.txt" Dette kalles også en absolutt bane.
Hvis et filnavn bare begynner med en stasjonspeker, men ikke med en omvendt skråstrek etter et kolon, tolkes det som en relativ bane til gjeldende katalog på den angitte stasjonsbokstaven. Merk at den gjeldende katalogen kan være rotkatalogen eller ikke, avhengig av hva den ble satt til under den siste "endre katalog"-operasjonen på den stasjonen. Eksempler på dette formatet ser slik ut:
  • "C:tmp.txt" refererer til en fil kalt "tmp.txt" i gjeldende katalog på C-stasjonen.
  • "C:tempdir\tmp.txt" refererer til en fil i en underkatalog til gjeldende katalog på C-stasjonen.
En sti regnes også som relativ hvis den inneholder "to punkter"; det vil si to perioder sammen i en banekomponent. Denne spesielle kvalifikatoren brukes til å angi katalogen over gjeldende katalog, ellers kjent som "overordnet katalog". Eksempler på dette formatet ser slik ut:
  • "..\tmp.txt" peker på en fil som heter tmp.txt, som ligger i den overordnede katalogen til gjeldende katalog.
  • "..\..\tmp.txt" peker på en fil som er plassert to kataloger over gjeldende katalog.
  • "..\tempdir\tmp.txt" spesifiserer en fil med navnet tmp.txt som ligger i en katalog kalt tempdir i samme katalog i gjeldende katalog.
Relative baner kan kombinere begge typer eksempler, for eksempel "C:..\tmp.txt". Dette er nyttig fordi mens systemet holder styr på gjeldende stasjon sammen med stasjonens nåværende katalog, holder det også styr på gjeldende kataloger i hver av de forskjellige stasjonsbokstavene (hvis systemet ditt har mer enn én), uavhengig av hvilken stasjon som er angitt som gjeldende stasjon.

Maksimal grense for veilengde

I Windows API (med noen unntak som vil bli diskutert i de følgende avsnittene), er det en maksimal banelengde i max_path som er definert som 260 tegn. Den lokale banen er strukturert i følgende rekkefølge: stasjonsbokstav, kolon, omvendt skråstrek, navnekomponenter atskilt med omvendte skråstreker og et avsluttende nulltegn. For eksempel er den maksimale banen til stasjon D "D:\noen 256-tegns banestreng ", der " " representerer et usynlig NULL-tegn for gjeldende systemkodesett. (Tegnene brukes her for klarhet og kan ikke være en del av en gyldig stistreng.)

Fil-I/O-funksjonene i Windows API konverterer "/" til "\" som en del av navnekonverteringen til et NT-typenavn, med mindre prefikset "\\?\" brukes.

Det er mange funksjoner i Windows API som også har Unicode-versjoner for å tillate utvidede banelengder for en maksimal total banelengde på 32 767 tegn. Denne banetypen består av komponenter atskilt med omvendte skråstreker, hver opp til verdien som returneres i parameteren Lpmaximumcomponentlength til GetVolumeInformation-funksjonen (denne verdien er vanligvis 255 tegn). For å spesifisere en utvidet lengdebane, bruk "\\?\"-prefikset. For eksempel?\\" ?\D:\very_long_path".

Merk at den maksimale banen på 32 767 tegn er omtrentlig fordi "\\?\"-prefikset kan utvides til en lengre streng av systemet under kjøring, og denne utvidelsen brukes på den totale lengden.

Det samme prefikset kan også brukes med stier bygget i henhold til Universal Naming Convention (UNC). For å spesifisere en slik bane ved hjelp av UNC, bruk "\\?\UNC\". For eksempel?\\",\UNC-bane\\server\share", der "server" er navnet på datamaskinen og "share" er navnet på den delte mappen. Disse prefiksene brukes ikke som en del av selve banen. De indikerer at banen må sendes til systemet med minimal modifikasjon, noe som betyr at du ikke kan bruke skråstreker for å representere baneskillere, eller en prikk for å representere gjeldende katalog, eller doble prikker for å representere overordnet katalog. Siden du ikke kan bruke prefikset "\\?\" med en relativ bane, er relative stier alltid begrenset til totalt MAX_PATH tegn.

Det er ikke nødvendig å gjøre noe for å normalisere Unicode i bane- og filnavnstrengene for Windows-fil I/O API-funksjonene, fordi filsystemet behandler banen og filnavnene som en sekvens av wchar-verdier. Enhver normalisering som kreves for applikasjonen din, må gjøres med dette i tankene, eksternt i forhold til eventuelle kall til Windows I/O API-funksjonsfilen.

Når du bruker API for å lage en katalog, kan ikke den angitte banen være så lang at 8.3-filnavnet ikke kan legges til (det vil si at katalognavnet ikke kan overstige MAX_PATH minus 12).

Skallet og filsystemet har forskjellige krav. Det er mulig å lage en bane med Windows API som shell-UI ikke er i stand til å tolke riktig.

Fra og med Windows 10 versjon 1607, har MAX_PATH-begrensninger blitt fjernet fra delte Win32-fil- og funksjonskataloger. Det er imidlertid nødvendig å velge en ny atferd. Registeret lar deg aktivere eller deaktivere den nye langbaneoppførselen. For å aktivere lange baner, sett registernøkkelen til

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: reg_dword). Nøkkelverdien vil bli bufret av systemet (per prosess) etter det første kallet til en Win32-fil eller katalogfunksjon. Registernøkkelen vil ikke bli lastet inn på nytt i løpet av prosessens levetid. En omstart kan være nødvendig for at alle applikasjoner på systemet skal gjenkjenne nøkkelens verdi fordi noen prosesser kan ha startet før nøkkelen ble satt.

Du kan også aktivere den nye langbaneadferden per app via manifestet:

ekte Dette er ksom ikke vil ha en max_path-grense hvis du aktiverer lange baner: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.