no.phhsnews.com


no.phhsnews.com / Hvorfor er Windows Reporting denne mappen for lang tid å kopiere?

Hvorfor er Windows Reporting denne mappen for lang tid å kopiere?


Hvis du jobber med Windows lenge nok, spesielt med mapper og filer med lange navn, kommer du til en bizar feil : Windows vil rapportere at mappebanen eller filnavnet er for lang til å flytte til et nytt mål eller til og med slette. Hva er avtale?

Hei, hvordan-til-geek!

Så om dagen omorganiserte jeg noen filer på datamaskinen min, lagde mapper, slike ting. Da, da jeg flyttet noen filer til en mappe, mottok jeg en melding som sier at den resulterende mappebanen vil være for lang. Jeg var forvirret. Jeg vet at hvert eneste operativsystem siden DOS støtter lange filnavn, men Windows hevder at banen er for lang? Hvorfor skjer dette?

Med vennlig hilsen,

Mr. Uorganisert

Problemet du løper inn er et uheldig skjæringspunkt mellom to systemer som i slike tilfeller gir en feil. For å forstå nøyaktig hvor feilen kommer fra, må vi grave inn i historien om lange filnavn (LFN), og hvordan Windows samhandler med dem før vi dykker inn i løsninger.

Lange filnavn ble introdusert gjennom den underliggende MS-DOS-arkitekturen , i Windows 95. Det nye LFN-systemet tillot fil- og katalognavn på opptil 255 tegn. Dette var en velkommen utvidelse av det forrige filnavnet, vanligvis kalt 8.3 filnavn fordi navnet var begrenset til åtte tegn og en tresifret forlengelse, men også kjent som Short Filename (SFN). Som du kan forestille deg, da var det fortsatt mange DOS-baserte apper rundt, og det var mer enn noen få hodepine som prøvde å få de nyere LFN-ene og arven SFNs til å leke fint med hverandre. Hvis du noen gang har kommet over en eldre diskett eller CD-ROM med merkelig avkortede filer på den (som abcdef ~ 1.txt), ble filnavnet kuttet ned av noen SFN-brukende eldre applikasjoner fra noen lengre og ikke-støttet LFN (som abcdefghijk. txt).

Vi er langt fra midten av 1990-tallet, og hele filen for lange filnavn er (for det meste) godt stryket ut. Hvis du kjører en versjon av Windows fra de siste 10 årene, har du sannsynligvis aldri kommet over en filnavnlengdekonflikt som vi pleide å løpe inn i DOS / Windows 95 dager. Når det er sagt, løper vi fortsatt inn i hikke, som du oppdaget med diskoppryddingsprosjektet. Men hvorfor? Hvis Windows 'Long Filename-systemet støtter mapper og filnavn på opptil 255 tegn per komponent, hvilken vegg kjører du inn? Vi kan ikke klandre NTFS (filsystemet som det store flertallet av moderne Windows-maskiner bruker) som NTFS vil støtte en kjetting av mapper og filnavn opp til en total bane lengde på 32.767 tegn. Det langt overstiger den typiske katalogstrukturen de fleste brukere noensinne vil trenge.

Hvor alt faller fra hverandre, er en kunstig begrensning Windows-stabler på toppen av LFN / NTFS-systemet: MAX_PATH-variabelen. MAX_PATH-variabelen angir at en komplett katalogstruktur i Windows ikke kan overstige 260 totale tegn, inkludert stasjonsbokstaven, kolon, backslash og null backlash på slutten. Dermed har du bare en potensiell reell MAX_PATH på 256 tegn, for eksempel C: din-256-tegn-banen .

Så hva skjedde da du ble ryddet opp datamaskinen din, at du hadde en katalog med en allerede lang bane (enten fordi mappenavnene var lange, var filnavnene lange eller begge deler), og da du forsøkte å flytte en eller flere av disse katalogene til en annen katalog med en lang bane, ble den totale lengden på banen navnet overskred 260 tegngrensen som ble pålagt av MAX_PATH-variabelen.

Nå kan du tenke "Ah-hah! Vi endrer bare MAX_PATH-variabelen og løser problemet! "Alas, det er ikke så enkelt. Ikke bare er MAX_PATH-variabelen i hovedsak hardkodd til Windows, men selv om du gikk gjennom det enorme besværet med å endre det, ville du ende opp med å bryte så mye det ikke ville være verdt det. For mange applikasjoner forventer at stivariabelen skal være hva Windows har angitt lenge for å være. Vi kan ikke bare gå rundt og endre det uten å skape et enormt rot.

Hvor forlater det deg? Vel, den enkleste løsningen er å bare redigere sti dataene. Hvis du for eksempel har massevis av lagrede artikler der programmet / utvidelsen du pleide å lagre dem fra nettet, opprettet en katalog som var den fulle tittelen til artikkelen + artikkelen, og så er filnavnet selv den fulle tittelen av artikkelen + artikkelen fører, ville det være veldig enkelt å treffe eller overstige MAX_PATH med en enkelt lagring. Å redigere de enorme mappene og artikkeltitlene ned til en mer fornuftig størrelse er en enkel måte å løse problemet på.

Hvis du har et stort antall filer med en lang bane, og du ikke vil redigere dem alle (eller hvis du vil slette massevis av gamle kataloger som er for lange for Windows å håndtere når det er begrenset av MAX_PATH-variabelen), det er en kommandolinje rundt. Selv om Windows er begrenset av MAX_PATH-variabelen, oppdaget Windows ingeniører at det ville være situasjoner der brukerne måtte håndtere lengre stinavn. Som sådan har Windows API en funksjon for å håndtere ekstremt lange baner.

For å utnytte denne API-en og bruke kommandolinjeverktøy på de ubøyelige mappene / filnavnene, må du bare legge til katalognavnet med en noen ekstra tegn. Hvis du for eksempel hadde en stor katalogstruktur som du ønsket å slette (men mottok en feil på grunn av banelengden når du prøvde det), kan du endre kommandoen fra:

rmdir c: documents some-really -super-long-folder-name-scheme

til:

rmdir \? c: documents noen-virkelig-super-long-mappenavn-ordningen

Nøkkelen er tillegg av\? -delen før starten av filbanen; Dette instruerer Windows om å se bort fra begrensningene som er pålagt MAX_PATH-variabelen, og å samhandle med banen du nettopp har levert som forstått direkte av det underliggende filsystemet (som tydeligvis kan støtte en lengre bane). Som alltid, vær forsiktig på kommandoprompten for å unngå å slette filer eller kataloger som du har tenkt å forlate intakt.

Hvis vår oversikt over dette problemet har vært nysgjerrig, må du definitivt grave inn i denne artikkelen fra Microsoft Developer Network-biblioteket, navngi filer, Stier og navnegrupper, for mer informasjon om hva som skjer under hetten.


Har du et presset teknisk spørsmål? Skyt oss en e-post på , og vi vil gjøre vårt beste for å svare på det.


Bruke terminaler i OS X er trolig den mest kraftige og umiddelbare måten å påvirke dype forandringer på Mac-en. Hvis du er fan av å bruke kommandolinjen, er det alltid hyggelig å lære et nytt triks.

Bruke terminaler i OS X er trolig den mest kraftige og umiddelbare måten å påvirke dype forandringer på Mac-en. Hvis du er fan av å bruke kommandolinjen, er det alltid hyggelig å lære et nytt triks.

Dagens triks kommer i form av merker. Merker fungerer mye som bokmerker ved at de tillater deg å utføre kommandoer og markere stillinger som du kan komme tilbake til senere. Bokmerkene er imidlertid forskjellige fordi de vedvarer fra Terminalvindu / -fanen til Terminalvindu / -fanen. Merkene gjelder bare for et enkelt vindu eller en fane.

(how-to)

Hvorfor har moderne datamaskinvesker fortsatt USB 2.0-porter?

Hvorfor har moderne datamaskinvesker fortsatt USB 2.0-porter?

Med USB 3.0 blir mer utbredt med hvert passerende år nå, har du kanskje funnet deg selv lurer på hvorfor moderne datamaskiner fortsatt har USB 2.0-porter bygget inn i dem. Med dette i bakhodet har dagens SuperUser Q & A-post svarene på en nysgjerrig leser spørsmål. Dagens Spørsmål og Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.

(how-to)