Kāpēc Windows ziņojumi Šī mape ir pārāk ilgi kopējama?

Kāpēc Windows ziņojumi Šī mape ir pārāk ilgi kopējama?
Kāpēc Windows ziņojumi Šī mape ir pārāk ilgi kopējama?

Video: Kāpēc Windows ziņojumi Šī mape ir pārāk ilgi kopējama?

Video: Kāpēc Windows ziņojumi Šī mape ir pārāk ilgi kopējama?
Video: Google Titan Security Key Bundle | How to Set Up Advanced Online Protection - YouTube 2024, Aprīlis
Anonim
Ja jūs strādājat ar Windows pietiekami ilgi, it īpaši ar mapēm un failiem, kuriem ir garš vārds, jūs nokļūsiet savādās kļūdās: Windows ziņos, ka mapes ceļš vai faila nosaukums ir pārāk garš, lai pārietu uz jaunu galamērķi vai pat izdzēstu. Kas par lietu?
Ja jūs strādājat ar Windows pietiekami ilgi, it īpaši ar mapēm un failiem, kuriem ir garš vārds, jūs nokļūsiet savādās kļūdās: Windows ziņos, ka mapes ceļš vai faila nosaukums ir pārāk garš, lai pārietu uz jaunu galamērķi vai pat izdzēstu. Kas par lietu?

Hey How-To Geek!

So the other day, I was reorganizing some files on my computer, creating folders, that kind of stuff. Then, when I was moving some files into a folder, I get a message, stating that the resulting folder path would be too long. I was confused. I know that every single OS since DOS supports Long Filenames, yet Windows claims that the path is too long? Why does this happen?

Sincerly,

Mr. Disorganized

Problēma, ar kuru jūs saskaras, ir neapmierinoša divu sistēmu krustošanās, kas šādos gadījumos rada kļūdu. Lai precīzi saprastu, no kurienes rodas kļūda, mums jāraiza Long Filenames (LFN) vēsture un tas, kā Windows mijiedarbojas ar tām, pirms mēs nonākam pie risinājumiem.

Izmantojot pamata MS-DOS arhitektūru, Windows 95 tika ieviestas ilgas failu nosaukumi. Jaunā LFN sistēma atļāva failiem un direktoriju nosaukumiem, kuru lielums nepārsniedz 255 rakstzīmes. Tas bija laba iepriekšējās failu nosaukumu sistēmas paplašināšanās, ko parasti sauc par faila nosaukumu 8.3, jo nosaukumam bija piecas rakstzīmes un trīs ciparu paplašinājums, bet tas sauc arī par īsu faila nosaukumu (SFN). Kā jūs varat iedomāties, pagaidām pēc tam joprojām bija daudz DOS balstītu progr, un tur bija vairāk nekā dažas galvassāpes, mēģinot iegūt jaunākos LFNs un mantotos SFN, kas spēlēja ar saviem spēkiem. Ja jūs kādreiz esat saskāries ar vecāku disketes vai kompaktdisku ar neparasti saīsinātām failiem par to (piemēram, abcdef ~ 1.txt), ka dažu SFN-lietojamo mantoto pieteikumu no dažiem ilgākiem un neatbalstītiem LFN (piemēram, abcdefghijk. txt).

Tomēr mēs esam tālu no deviņdesmito gadu vidus, un visa Long Filename lieta (lielākoties) ir stingri izlīdzināta. Ja pēdējo desmit gadu laikā esat izmantojis Windows versiju, iespējams, ka nekad nebūsiet saskāries ar faila nosaukuma garuma konfliktu, piemēram, mēs izmantojām DOS / Windows 95 dienu laikā. Tas nozīmē, ka mēs joprojām nonākam žagos, kā jūs atklājāt ar diska tīrīšanas projektu. Bet kāpēc? Ja Windows Long Filename sistēma atbalsta mapes un faila nosaukumus līdz 255 rakstzīmēm uz vienu komponentu, uz kādu sienu jūs ieslēdzat? Mēs nevaram vainot NTFS (failu sistēmu, ko izmanto lielākā daļa mūsdienu Windows ierīču), jo NTFS atbalstīs mapju un failu nosaukumu sajaukšanu kopējā ceļa garumā 32 767 rakstzīmes. Tas ievērojami pārsniedz tipisko direktoriju struktūru, kāda lielākajai daļai lietotāju būtu nepieciešama.

Ja tas viss tiek sadalīts, ir mākslīgs ierobežojums Windows skavām LFN / NTFS sistēmas augšpusē: MAX_PATH mainīgais. MAX_PATH mainīgais norāda, ka pilnīga direktoriju struktūra sistēmā Windows nedrīkst pārsniegt 260 kopējās rakstzīmes, ieskaitot diska burtu, kolu, aizmugurējās slīpsvītras slīpumu un nulles atbloķēšanu. Tādējādi jums ir potenciāls reālais MAX_PATH ar 256 rakstzīmēm, piemēram, C: tava-256 rakstzīmju ceļa.

Tātad, kas notika, kad jūs tīrījaties savu datoru, ir tas, ka jums bija katalogs ar jau garu ceļu (vai nu tāpēc, ka mapju nosaukumi bija garš, failu nosaukumi bija ilgi vai abi), un kad mēģinājāt pārvietot vienu vai vairākus šīs direktorijas citā direktorijā ar garu ceļu kopējais ceļa nosaukuma garums pārsniedza 260 rakstzīmju limitu, ko noteicis MAX_PATH mainīgais.

Tagad jūs domājat "Ah-hah! Mēs vienkārši mainīsim MAX_PATH mainīgo un atrisināsim problēmu! "Diemžēl tas nav tik vienkārši. Ne tikai mainīgais MAX_PATH būtībā ir stingri kodēts sistēmā Windows, bet pat tad, ja jūs izietu milzīgu problēmu, mainot to, jūs galu galā pārvarētu tik daudz, ka tas nebūtu vērts. Pārāk daudz pieteikumu sagaida, ka ceļa mainīgais ir tāds, kādu Windows to jau ir norādījis. Mēs nevaram vienkārši mainīt to, neradot milzīgu netīci.

Kur tas tevi atstāj? Nu, vienkāršākais risinājums ir vienkārši rediģēt ceļa datus. Piemēram, ja jums ir vairāki saglabātie raksti, kuros lietojumprogramma / paplašinājums, kuru izmantojāt, lai tos saglabātu no tīmekļa, izveidoja direktoriju, kas bija pilns raksta nosaukums + raksta svins, un pats pats faila nosaukums ir pilns nosaukums no raksta + raksta svina, tiešām būtu vienkārši hit vai pārsniegt MAX_PATH ar vienu ietaupījumu. Šo milzīgo mapju un rakstu nosaukumu rediģēšana līdz saprātīgam izmēram ir vienkāršs veids, kā novērst problēmu.

Ja jums ir liels skaits failu ar lielu ceļu un jūs nevēlaties tos visus rediģēt (vai arī ja vēlatiesdzēst tonu veco direktoriju, kas ir pārāk garš, lai Windows varētu rīkoties, ja ierobežo MAX_PATH mainīgais), ir virkne komandrindas. Kaut arī Windows mainās MAX_PATH mainīgais, Windows inženieri saprata, ka būs situācijas, kad lietotājiem būs jārisina ilgāku ceļu nosaukumi. Tādējādi Windows API ir funkcija, kas ļauj apstrādāt ļoti garus ceļus.

Lai izmantotu šo API un izmantotu komandrindas rīkus savām nepatīkamajām mapēm / failu nosaukumiem, jums vienkārši jāpievieno direktorija nosaukums ar dažām papildu rakstzīmēm. Piemēram, ja jums bija milzīga direktoriju struktūra, kuru vēlaties izdzēst (bet, kad to mēģinājāt, saņēmāt kļūdu, ņemot vērā ceļa garumu), jūs varat mainīt komandu no:

rmdir c:documentssome-really-super-long-folder-name-scheme

uz:

rmdir \?c:documentssome-really-super-long-folder-name-scheme

Galvenais ir papildinājums

?

daļa pirms faila ceļa sākuma; tas uzdod Windows ignorēt MAX_PATH mainīgā noteiktos ierobežojumus un mijiedarboties ar tieši piegādāto ceļu, ko tieši piegādā vai saprot pamata failu sistēma (kas var skaidri atbalstīt garāku ceļu).Kā vienmēr, rīkojieties piesardzīgi komandu uzvednē, lai izvairītos no nejaušas failu vai direktoriju dzēšanas, kuru vēlaties atstāt neskartu.

Ja jums ir ziņkārīgs ziņojums par šo problēmu, noteikti iegremdējiet šo rakstu no Microsoft Developer Network bibliotēkas, nosaukumu failiem, ceļiem un vārdu telpām, lai iegūtu plašāku informāciju par to, kas notiek zem kapuces.

Vai ir aktuāls tehnoloģiju jautājums? Uzņemiet mums e-pastu uz adresi [email protected], un mēs darīsim visu iespējamo, lai to atbildētu.

Ieteicams: