Ako opraviť problém „Názov súboru je príliš dlhý“ v systéme Windows

Ak ste sa s týmto problémom niekedy stretli, pravdepodobne to bola pre vás jednoduchá oprava. Ak ste túto chybu videli viac ako dvakrát, potom tiež viete, že niekedy môže ísť o zložitý problém.

Dúfajme, že sa stretnete len s jednoduchými opravami, ale pripravíme vás aj na tie menej jednoduché a zaručene fungujúce opravy.

Prečo je dĺžka názvu súboru dokonca problémom v systéme Windows?(Why Is Filename Length Even An Issue In Windows?)

Dlhá história dĺžok súborov je problémom pre operačné systémy ako Windows . Boli časy, keď ste nemohli mať názvy súborov dlhšie ako 8 znakov plus 3-znakovú príponu súboru. Najlepšie, čo ste mohli urobiť, bolo niečo ako myresume.doc . Toto bolo obmedzenie vzhľadom na návrh súborového systému.

Veci sa zlepšili, keď sa objavili nové verzie systému Windows . Prešli sme zo starého, obmedzeného súborového systému na niečo, čo sa nazýva New Technology File System ( NTFS ). NTFS nás priviedol do bodu, keď názov súboru mohol mať 255 znakov a dĺžka cesty k súboru mohla potenciálne dosiahnuť až 32 767 znakov. Ako teda môžeme mať príliš dlhé názvy súborov?

Windows má veci známe ako systémové premenné. Toto sú premenné, na ktorých fungovanie sa Windows spolieha, pretože Windows bude vždy vedieť, čo premenné znamenajú a kde sa nachádzajú, a to aj vtedy, keď všade presúvame bity a bajty. Systémová premenná MAX_PATH je tá, ktorá obmedzuje názvy súborov a cesty k súborom na menej ako 260 znakov.

Ako premenná by ste si mysleli, že to môžeme zmeniť. Nie, nemali by sme. Bolo by to ako ťahať niť zo svetra. Akonáhle sa zmení jedna systémová premenná, začnú sa rozpadať ďalšie systémové premenné a komponenty na nich závislé.

Ako to teda opravíme?

Jednoduchá oprava(The Easy Fix)

Ak budete mať šťastie, zobrazí sa vám chyba a budete presne vedieť, aký názov súboru spôsobuje problém. Alebo aspoň kde nájsť súbor. Možno máte názov súboru, ktorý vyzerá takto:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

V tomto prípade je jasné, kto je páchateľom. Nájdite súbor v Prieskumníkovi systému Windows(Windows Explorer) alebo v Prieskumníkovi súborov(File Explorer) , ako sa nazýva vo Windowse 10(Windows 10) , kliknite naň raz, stlačte F2 , aby ste ho premenovali, a zmeňte ten hlúpy názov súboru na niečo rozumnejšie. Problém(Problem) vyriešený.

Menej jednoduché opravy(The Less Easy Fixes)

Vyriešiť tento problém nie je vždy také jednoduché. Niekedy sa môže stať, že z akéhokoľvek dôvodu nebudete môcť zmeniť názvy súborov alebo adresárov.

Nasledujúce riešenia vám pomôžu. Nie je ťažké ich urobiť.

Presúvanie(Move) , odstraňovanie(Delete) alebo kopírovanie súborov alebo adresárov pomocou prostredia PowerShell(Or Copy Files Or Directories Using PowerShell)

Niekedy sa pri pokuse o presun, odstránenie alebo skopírovanie adresárov, v ktorých je počet znakov v ceste k súboru väčší ako 260, zobrazí chyba.

Upozorňujeme, že slová adresár a priečinok sú zameniteľné. Ďalej budeme používať „adresár“. Nasledujúce rutiny cmdlet PowerShell možno použiť aj na súbory.

Cesta k súboru môže vyzerať takto:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Táto cesta k súboru má 280 znakov. Takže nemôžeme skopírovať adresár odtiaľ niekam inam pomocou normálnej metódy kopírovania a vkladania. Dostaneme chybu Cieľová cesta je príliš dlhá .(Destination Path Too Long)

Predpokladajme, že z akéhokoľvek dôvodu nemôžeme premenovať adresáre, v ktorých je súbor vnorený. Čo urobíme?

Otvorte PowerShell(Open PowerShell) . Ak ste PowerShell(PowerShell) ešte nepoužívali , vychutnajte si náš článok Používanie PowerShellu pre domácich používateľov – príručka pre začiatočníkov(Using PowerShell for Home Users – A Beginner’s Guide) . Ďalšie kroky však môžete vykonať bez čítania článku.

Keď sa otvorí PowerShell , budete v koreňovom adresári svojho používateľského adresára. Postupujte(Follow) ďalej za predpokladu, že C:\Users\guymc je váš používateľský adresár.

Adresár s názvom Toto(This) sa nachádza v adresári Dokumenty(Documents) . Na presun do adresára Documents použijeme príkaz DOSu (DOS)cd Documents

Uvidíte, že sa výzva zmení na C:\Users\guymc\Documents . To je dobré. Pracujeme bližšie k adresárom, čo uľahčí prácu.

Kopírovať adresár pomocou Copy-Item

Chceme skopírovať adresár This a jeho obsah do ThatNewFolder . Použime cmdlet Copy-Item PowerShell s parametrami -Destination a -Recurse .

-Cieľ hovorí PowerShellu(PowerShell) , kde chceme mať kópiu. -Recurse povie PowerShellu(PowerShell) , aby skopíroval všetky položky vo vnútri do cieľa. Kopírovaním ponecháte originály tam, kde sú, a vytvoríte všetky nové v mieste určenia.

Copy-Item This -Destination ThatNewFolder -Recurse

Presunúť adresár pomocou položky Move-Item

Povedzme, že chceme presunúť adresár This a všetky adresáre a súbory v ňom do ThatNewFolder . Presunutím nezostane originál na mieste.

Môžeme použiť rutinu PowerShell Move-Item s parametrami -Path a -Destination . -Path definuje položku, ktorú chceme presunúť, a -Destination povie PowerShellu(PowerShell) , kam ju chceme mať. 

Rutina cmdlet vloží toto do ThatNewFolder . Tiež presunie všetko, čo sa nachádza v adresári This. Move-Item možno použiť na presun súborov alebo adresárov a funguje to bez ohľadu na cestu k súboru alebo dĺžku súboru.

Move-Item -Path This -Destination ThatNewFolder

Aby ste sa uistili, že to funguje, použite príkaz cd ThatNewFolder na vstup do ThatNewFolder . Potom použite príkaz dir na zoznam adresárov v ThatNewFolder . Uvidíte, že je tam tento adresár.

Odstrániť adresár pomocou Remove-Item

Ak chceme odstrániť tento(This ) adresár a všetko v ňom, použijeme cmdlet Remove-Item .

Rutina cmdlet Remove-Item má určitú vstavanú bezpečnosť, ktorá sťažuje odstránenie adresára s vecami v ňom. V našom príklade vieme, že chceme vymazať všetko, takže použijeme parametre -Recurse , aby sa odstránilo všetko vo vnútri, a -Vynútiť(-Force) , aby to urobilo, bez toho, aby sme sa nás pýtali, či sme si istí pre každú položku vo vnútri.

Byť upozornený! Obnovenie čohokoľvek vymazaného týmto spôsobom by bolo mimoriadne náročné. Môžete vyskúšať metódy v časti Ako obnoviť náhodne vymazané súbory , ale veľa nečakajte.

Remove-Item This -Recurse -Force

Môžete znova použiť príkaz dir, aby ste sa uistili, že je preč.

Zabezpečte, aby systém Windows 10 akceptoval dlhé cesty k súborom(Make Windows 10 Accept Long File Paths)

Ak viete, že budete opakovane používať dlhé cesty k súborom a dlhé názvy súborov, bude jednoduchšie, aby systém Windows(Windows) pracoval za vás. Nemá zmysel používať PowerShell na každodennú prácu.

Môžeme to urobiť dvoma spôsobmi. Jeden je pre používateľov systému Windows 10 (Windows 10) Home a druhý pre používateľov systému Windows 10 (Windows 10) Pro alebo Enterprise . Tieto metódy môžu fungovať pre systém Windows 8.1(Windows 8.1) alebo starší, ale nemôžeme to zaručiť.

Nechajte(Make) Windows 10 Home akceptovať dlhé cesty k súborom(Home Accept Long File Paths)

Aby systém Windows 10 (Windows 10) Home akceptoval dlhé cesty k súborom, musíme otvoriť Editor databázy Registry(Registry Editor) . Ak ste ešte nepracovali v Editore databázy Registry(Registry Editor) , buďte opatrní. Náhodné odstránenie alebo zmena vecí tu môže úplne zastaviť fungovanie systému Windows(Windows) .

Pred vykonaním akýchkoľvek zmien si vždy vytvorte zálohu registra. Všetko, čo o tom potrebujete vedieť, sa dozviete v našom dokonalom sprievodcovi zálohovaním a obnovením databázy Registry systému Windows( Ultimate Guide to Backing Up and Restoring the Windows Registry) .

Po otvorení Editora(Editor) databázy Registry a vytvorení zálohy prejdite do umiestnenia HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem a nájdite kľúč LongPathsEnabled .

Dvakrát kliknite na LongPathsEnabled . V poli Údaj hodnoty:(Value data:) skontrolujte, či je tam číslo 1 . Kliknutím na OK potvrďte(OK) zmenu.

Ukončite Editor databázy Registry(Registry Editor) a teraz by ste mali byť schopní pracovať so šialene dlhými cestami k súborom.

Nechajte(Make) Windows 10 Pro alebo Enterprise akceptovať dlhé cesty k súborom(Pro Or Enterprise Accept Long File Paths)

Aby sme umožnili systému Windows 10 (Windows 10) Pro alebo Enterprise používať dlhé cesty k súborom, použijeme Editor zásad skupiny(Group Policy Editor) . Je to nástroj, ktorý nám umožňuje nastaviť zásady fungovania systému Windows na úrovni počítača a používateľa.

Máme niekoľko článkov o používaní skupinovej politiky na vykonávanie vecí, ako je zakázanie alebo povolenie možností programu Internet Explorer( disabling or enabling Internet Explorer options) alebo pridanie správy na prihlasovaciu obrazovku( adding a message to the logon screen) .

Otvorte Editor politiky skupiny(Group Policy Editor) tak, že prejdete do ponuky Štart(Start) a napíšete gpedit . Najlepším výsledkom by mala byť úprava zásad skupiny(Edit group policy) . Dvakrát na to kliknite.

Po otvorení Editora zásad skupiny(Group Policy Editor) prejdite do časti Computer Configuration > Administrative Templates > System > Filesystem . Tam uvidíte zásadu Povoliť dlhé cesty Win32(Enable Win32 long paths) .

Ak chcete upraviť nastavenie politiky, dvakrát naň kliknite. Zmeňte ho z Disabled na Enabled a potom kliknutím na tlačidlo OK(OK ) potvrďte zmenu. 

Zásady nemusia nadobudnúť účinnosť okamžite. Môžete však vynútiť aktualizáciu skupinovej politiky( force the group policy to update) .

To je všetko(That’s It)

Existuje niekoľko ďalších spôsobov, ako obísť dlhé názvy súborov a cesty k súborom, ale to, čo sme tu prešli, sú tie najjednoduchšie a najúčinnejšie metódy.



About the author

Som profesionálny audio inžinier s viac ako 10-ročnými skúsenosťami. V hudobnom priemysle pracujem už niekoľko rokov a v tejto oblasti som si vybudoval silnú reputáciu. Som tiež veľmi skúsený používateľský účet a operátor pre bezpečnosť rodiny. Medzi moje povinnosti patrí správa používateľských účtov, poskytovanie podpory zákazníkom a poskytovanie poradenstva v oblasti bezpečnosti rodiny zamestnancom.



Related posts