Slut med sti-begrænsning på 260 karakterer i Windows

I en kommende opdatering til Windows 10 skulle åbne op for sti-navne på over 260 karakterer.

En opdatering til Windows 10 er på vej, som skulle give native understøttelse for sti-navne på over de 260 karakterer, der som udgangspunkt er begrænsningen i Microsofts styresystem. Det fortæller Softpedia på baggrund af en preview-udgave af Windows-opdateringen kaldet Redstone.

Det skulle være muligt at fjerne karakter-begrænsningen via en ny policy. Den er ikke aktiveret som standard, men kan sættes op via Registry Editor. Programmet kan køres ved at klikke på start-menuen og skrive regedit.exe og så navigere hen til følgende sti:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group 
Policy Objects{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies

Her skal der så findes frem til en entry, der hedder ‘LongPathsEnabled’. Hvis ikke den findes, så skal man højreklikke på det, der i den engelsksprogede udgave af styresystemet - muligvis også den danske - hedder Policies.

Herefter skal man vælge New DWORD (32-bit) og kalde det for 'LongPathsEnabled' - uden anførselstegn. Og så skal man indtaste værdien 1, hvorefter karakterbegrænsningen på 260 tegn skulle være væk.

Microsoft har ifølge Softpedia ikke meldt noget officielt ud om funktionen, men mediet citerer fra beskrivelsen til featuren i policy-editoren, hvor det blandt andet fremgår, at NTFS-long paths gør det muligt for win32-applikationer med et manifest og Windows Store-applikationer at tilgå stier udover den normale begrænsning på 260 karakterer.

Hvis en app skal understøtte de længere stinavne, så kræver det, at det explicit er formuleret i appen, at den nye policy understøttes. Så apps skal altså opdateres for at understøtte den nye funktion.

Foreløbigt er funktionen i preview-udgaver af Windows 10, men den skulle blive tilgængelig på alle systemer via en opdatering i løbet af sommeren i år.

På Reddit ihukommer flere brugere oplevelser på Windows-systemer som følge af begrænsningen på 260 karakterer.

Der er undtagelser til den nuværende begrænsning på 260 karakterer. Dem fortæller Microsoft mere om her.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (18)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Jakob H. Heidelberg

Stien "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group
Policy Objects{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies" findes i registreringsdatabasen, ikke i Group Policy editoren.

I Group Policy skulle det være under: "Computer Configuration > Administrative Templates > System > Filesystem > NTFS > Enable NTFS long paths" i følge: http://betanews.com/2016/05/29/long-paths-windows-10/

  • 2
  • 0
Baldur Norddahl

Det man får i skolen er et tegn der skal markere hvor godt man har klaret sig :-)

Karakter er et gammelt ord der betyder tegn: http://ordnet.dk/ods/ordbog?query=karakter&tab=for

Bemærk specielt betydning nummer 2 hvor skrifttegn og bogstav nævnes. Men også de andre betydninger er i overensstemmelse med det betydning som er relevant for computere. Det er jo langt fra kun skrifttegn der fremgår af unicode men også symboler af forskellig art.

  • 3
  • 0
Lars Skovlund

Tegn versus karakterer uanset, så er der det problem, at mange programmer har buffere af fast længde til at rumme filnavne. Disse vil ofte være defineret til at have størrelsen MAX_PATH, som er 260. Da det er en compile-time konstant, vil disse programmer fortsat have begrænsningen efter den omtalte registry-ændring. Det kræver en genoversættelse at få disse programmer med.

Alternativet er at foranstille \\?\ til stier, men det kræver igen programsupport. Det er ikke nyt, det har man kunnet gøre i årevis.

  • 4
  • 0
Mogens Ritsholm

Jeg husker, at Peter Naur m. fl. i et sprogudvalg under Dansk Standard kæmpede hårdt for, at det hed "tegn" på dansk. Åbenbart er denne kamp nu delvist tabt.

De kæmpede også for, at baud ikke var det samme som bit/s. Den fejl ser jeg stadig ofte, men her har vi med støtte fra en tilsvarende engelsksproget forskel holdt skansen.

Et andet nyere eksempel er "telenetværk" og "mobilnetværk". Hvor sidder det "værk" henne, og hvorfor er der ikke noget "værk" i "elnettet", "vejnettet" og "jernbanenettet"?

Tydeligvis har telebranchen bare lydoverført "network" uden at tænke over forskellen på "net" og "netværk". Den kamp er vist også tabt. Jeg har endnu ikke mødt nogen i telebranchen, som fandt anledning til at spekulere lidt over dette.

Og måske er det heller ikke så vigtigt.

Men jeg tror - som Peter Naur m. fl. gjorde - at en mindre præcis sprogbrug i en branche understøtter en mere sløset logik i al almindelighed i denne branche..

Men det er nok også forældet. I hvert fald i Danmark.

  • 10
  • 1
Jan Rasmussen

'English - the One World Language' er titlen på en BBC dok jeg så en gang, og sikkert også den retning vi bevæger os i, så da det engelske ord er 'Character', er det bedst, at bruge det danske 'karakter', da det minder mest om det 'rigtige' -hvis vi taler om computer eller software.

Jeg benytter kun windows.h ét sted i min kode, og er eneste ting jeg mangler for at kunne flytte over på linux uden andet ind at re-kompile, en bagatel som benytter omtalte MAX_PATH.

int Get_Files_in_Dir(char *argv[], std::vector<Dirinfo> &dirvec)
//
if (length_of_arg > (MAX_PATH - 3)) {
std::cout << "\nDirectory path is too long.\n";
// throw
return (-1);
}
//

Men første spørgsmål der melder sig er hvad er MAX_PATH på linux
http://stackoverflow.com/questions/833291/is-there-an-equivalent-to-wina...

"However, any path name can be prefixed by \?\ to tell the Windows API to ignore MAX_PATH and let the file system driver make up its own mind. After that, the definitions get fuzzy."

Jeg tror bare jeg beholder de 252 som jeg benytter nu.

  • 0
  • 4
Michael Rasmussen

Men første spørgsmål der melder sig er hvad er MAX_PATH på linux


http://www.gnu.org/software/libc/manual/html_node/Limits-for-Files.html

Macro: int PATH_MAX
The uniform system limit (if any) for the length of an entire file name (that is, the argument given to system calls such as open), including the terminating null character.

Portability Note: The GNU C Library does not enforce this limit even if PATH_MAX is defined.

  • 1
  • 0
Dave Pencroof

Må håbe at MS inkorporere det ved næste build, ellers skal man vel ind og rette det igen, når man ikke kan få fat i dybeste mappe i stien !
Er temmelig sikker på at win 7/8/8.1 ikke får denne opdatering, det vil jo ikke hænge sammen med MS's besættelse af at få alt udstyr der kan over på win 10 !
Well det win 10 cirkus er snart ovre iflg MS !

  • 0
  • 0
Log ind eller Opret konto for at kommentere