Cum să eliminați o cale prea lungă. Numele fișierului sau calea sursă este prea lungă. Folosind Total Commander

24.10.2019 Știri

Iată un exemplu de structură de foldere pe care am numit-o „păpușa mare”:

După cum puteți vedea, pe unitatea „D” (Date) există un folder video sursă, în el există un folder „Filme”, în el există „Tot ce aveți nevoie pentru a viziona filme” și apoi, în același mod, un folder într-un folder. În același timp, multe foldere au nume și nume lungi - mai mult de 10-15 caractere, ceea ce în total va da volumul de caractere în toate numele mai mult de 260. Și dacă la sfârșitul unei astfel de „matryoshka” există o fișier, atunci se poate dovedi că nu puteți lucra cu el, puteți... Uneori sistemul în sine nu vă permite să creați în cele din urmă un folder sau un fișier care depășește numărul permis de caractere, dar uneori, din anumite motive, acest lucru se întâmplă.

În primul rând, pentru începători, voi explica ce este o cale de fișier și folder. Calea este așa-numita adresă de pe computerul în care se află fișierul sau folderul. De exemplu, un fișier numit „Fișierul meu.txt” se află pe unitatea locală D: în folderul „Documente”. Apoi calea către acest fișier va arăta astfel:

D:\Documente\Fișierul meu.txt

Sau, de exemplu, așa va arăta calea din exemplul de mai sus, unde am arătat o structură complexă de foldere.

După cum puteți vedea, numărul de caractere din calea de mai sus este mare și este posibil ca la sfârșit să existe un fișier sau un folder cu un nume lung pe care nu îl puteți șterge.

Când încercați să ștergeți un fișier cu un nume de cale lungă, veți primi o fereastră cu o eroare ca aceasta:

Am încercat să recreez artificial problema și asta este ceea ce am obținut.

Pe unitatea „D” am creat un folder cu numele scurt „1” și am plasat un fișier cu un nume foarte lung în el. Iată un exemplu:

Acum redenumesc și folderul „1” cu un nume foarte lung, de exemplu:

Interesant, Windows vă permite să redenumiți un folder cu un nume atât de lung, în ciuda faptului că numărul de caractere din numele acestui folder + numele fișierului depășește deja 260! Ei bine, după ce am redenumit folderul cu un nume lung, nu mai pot șterge fișierul aflat în el și afișează eroarea.

Sau iată un alt exemplu... Întrețin site-ul Colegiului de Fabricare de Instrumente din Moscova, unde anterior lucram cu normă întreagă și uneori folosesc o copie a site-ului pe computer pentru a testa câteva „bunătăți” noi pentru site. Ce se întâmplă dacă instalez ceva rău și site-ul de pe hosting moare? :) Și așa o verific pe computer și dacă totul este în regulă, atunci l-am configurat pe un site real aflat pe hosting. Așadar, o dată am transferat întregul site de la găzduire pentru a testa un lucru, iar după ce am terminat de lucrat, am decis să șterg folderul cu site-ul de pe computer. La urma urmei, cântărește aproximativ 6 GB. Întregul site a fost șters, cu excepția unui număr de foldere. Am început să caut și am văzut că acele foldere care conțineau un fișier cu un nume lung sub formă de hieroglife nu au fost șterse:

Am încercat din nou să șterg acest fișier cu un nume lung și am văzut aceeași eroare pe care am menționat-o mai sus. Am încercat să-l redenumesc, dar nici nu merge. Ei bine, a trebuit să mă gândesc cum să rezolv problema.

Cum să rezolvi problema ștergerii unui folder/fișier cu o cale lungă!

Am încercat 2 moduri de a șterge un folder/fișier cu un nume lung în calea către acesta. Ambele nu sunt dificile din punct de vedere tehnic (mai ales prima), așa că cred că un începător poate face față dacă face totul exact așa cum arăt eu:

    Redenumiți mai multe foldere din calea fișierului cu un nume mai scurt. Aceasta este cea mai simplă soluție care ar trebui să ajute deja pe mulți! Să presupunem că aveți un fișier într-un folder cu un nume foarte lung pe care nu îl puteți șterge, deschide, copia și, în general, nu puteți lucra.

    Apoi încercați pur și simplu să redenumiti folderul în care se află fișierul cu un nume lung, de exemplu, la „1”. Să revin la unul dintre exemplele de mai sus. Iată un folder cu un nume lung:

    Folosind Windows Explorer standard, redenumesc numele acelui folder în „1” și așa arată acum calea către fișier:

    Acum puteți lucra în siguranță cu fișierul, sistemul vă va permite să îl deschideți, să îl redenumiți și să îl ștergeți.

    Dacă aveți un arbore de foldere lung, de ex. ca o păpușă de cuibărit, într-un folder există altul, în el există un altul, apoi altul, apoi începe să redenumești chiar din primul folder din această păpușă de cuib. Nu cu ultimul de pe listă, ci cu primul!

    Este posibil ca există un număr mare de foldere și nu veți putea redenumi unele dintre ele din cauza aceleiași erori sau vă va lua mult timp. În acest caz, vă propun a doua metodă.

    Metoda este că puteți lua un folder, de exemplu, în mijlocul unui arbore comun și îl puteți conecta ca un disc virtual. Un disc virtual este ceva care ne amintește de unul obișnuit. disc local, dar care este pur și simplu legat de un anumit folder, de exemplu, pentru o interacțiune rapidă cu acesta.

    Să presupunem că aveți un drum lung ca acesta:

    D:\Video\Filmele mele\Tot ce aveți nevoie pentru a viziona filme\Programe pentru vizionarea de filme\Cum se deschide filme MP4\Lista de exemple de filme MP4\Lista de programe pentru deschiderea MP4\Ce nu trebuie să faceți când deschideți fișiere MP4

    Să presupunem că în ultimul folder avem un fel de fișier problematic cu care nu putem lucra, deoarece calea către el, după cum vedem, este destul de lungă :)

    Putem lua și conecta unul dintre folderele cu un nume lung în mijlocul căii ca un disc virtual. Fie ca acesta să fie folderul „Programe pentru vizionarea de filme”.

    Pentru a conecta un disc virtual, avem nevoie de așa-numita linie de comandă Windows, adică. consolă.

    Îl puteți deschide prin Căutare Windows. În căutare, tastați „Linia de comandă”:

    La fereastră Linie de comanda trebuie să introducem comanda:

    subst virtual_disk_letter "path_to_folder"

    Puteți seta orice literă de unitate, atâta timp cât aceasta nu este deja ocupată de una dintre unitățile locale. De exemplu, aveți unitatea locală C și D, ceea ce înseamnă disc virtual nu vei mai putea să-l suni cu aceeași literă. Îl puteți numi, de exemplu, litera „X”, deoarece este rar folosită în Windows.

    Pentru calea folderului, inserați calea către folderul pe care doriți să îl conectați ca unul virtual. După cum am spus deja, în exemplul meu vom face „Programe pentru vizionarea de filme” ca un folder virtual, ceea ce înseamnă că calea trebuie specificată astfel:

    D:\Video\Filmele mele\Tot ce aveți nevoie pentru a viziona filme\Programe pentru vizionarea de filme\

    Deci, comanda finală în cazul meu va arăta astfel:

    subst X: „D:\Video\Filmele mele\Tot ce aveți nevoie pentru a viziona filme\Programe pentru vizionarea de filme\”

    Pentru a executa comanda introdusă, apăsați tasta „Enter” de pe tastatură. Discul virtual va fi creat.

    Acum să mergem la Windows Explorer, să mergem la secțiunea „Acest PC” (sau „Computer”) și să vedem discul virtual creat acolo:

    Îl poți distinge după litera sa. Am atribuit litera „X” discului virtual. Acum, dacă deschidem acest disc virtual, ne vom găsi imediat în folderul „Programe pentru vizionarea filmelor”. Acestea. am luat și am tăiat jumătate din calea către folderul final.

    Pentru comparație...

    Anterior, calea către folderul final arăta astfel:

    D:\Video\Filmele mele\Tot ce aveți nevoie pentru a viziona filme\Programe pentru vizionarea de filme\Cum se deschide filme MP4\Lista de exemple de filme MP4\Lista de programe pentru deschiderea MP4\Ce nu trebuie să faceți când deschideți fișiere MP4

    După conectarea discului virtual la folderul „Programe pentru vizionarea de filme”, calea către folderul final arată astfel:

    X:\Cum se deschide filmele MP4\Lista de exemple de filme MP4\Lista de programe pentru deschiderea MP4\Ce să nu faceți când deschideți fișiere MP4

    Simți diferența? Calea este scurtată la jumătate, deoarece litera de unitate ne direcționează imediat către folderul din mijlocul căii :) Și, deoarece calea este mult scurtată, probabil că acum ați eliminat limita de caractere din numele fișierelor și folderelor și veți să poată șterge un fișier sau un folder cu un nume lung!

    După ce rezolvi problema cu fișierul, discul virtual poate fi șters din nou, astfel încât să nu devină o bătaie de vedere în Explorer.

    Pentru a face acest lucru, deschideți din nou linia de comandă șir Windows si introduceti comanda:

    Subst virtual_disk_letter /d

    În cazul meu, litera de unitate este „X”, deci comanda ar arăta astfel:

Când mă gândeam la opțiuni pentru rezolvarea problemei, cum să șterg un folder sau fișier cu nume lung, am găsit o altă opțiune pe Internet: ștergeți fișierul problematic prin programul „ Comandant total" Am încercat, nu a ieșit, de aceea nu am recomandat această metodă :)) Și metoda, chiar dacă ar funcționa pentru cineva, sincer nu este distractivă, pentru că trebuie să instalați program suplimentar pe computer de dragul de a șterge un singur fișier sau folder cu un nume lung...

Cred că dacă apare o problemă similară, pe care am avut-o de mai multe ori, una dintre metodele descrise mai sus vă va ajuta cu siguranță.

Asta e tot! Ne vedem curand in articolele urmatoare ;)

Nu este un secret pentru nimeni că Windows Explorer, ca majoritatea altor aplicații Windows, inclusiv PowerShell, nu poate funcționa cu obiecte Sistemul de fișiere cu imbricarea profundă a dosarelor, a cărei lungime a căii depășește 260 de caractere. Mai mult, această limitare există doar la nivel de aplicație și fișierul în sine sistem NTFS acceptă căi de fișiere până la 32767 personaje.

Această limitare este impusă de bibliotecă Win32 API, și a cărui lungime maximă a căii este de 260 de caractere ( MAX_PATH=260). În general, calea este formată din următoarele elemente: +[cale_of_256_characters]+[ ] , iar lungimea maximă a unui director/fișier în NTFS este de 255 de caractere în Unicode. Când utilizați funcțiile API Unicode, este posibil să utilizați calea către 32767 personaje. Datorită acestui lucru, mulți programe de la terți(aceiași manageri de fișiere populari, de exemplu DEPARTEȘi Comandant total) procesează fără nicio dificultate fișierele/folderele a căror lungime de cale depășește 260 de caractere.

Sfat. Puteți ocoli această limitare a API-ului Win32 și puteți lucra cu nume lungi de fișiere folosind formatul de cale UNC, specificând calea absolută către fișier folosind prefixul de cale cu lungime extinsă \\?\ . De exemplu, așa \\?\C:\SomeLongPath\LongNameFile.txt

Această restricție nu se aplică nici când acces la retea utilizatorii la fișiere prin protocolul SMB (din această cauză, structurile de directoare cu căi lungi sunt adesea servere de fișiere cu datele utilizatorului). Serviciul de administrator acest server nu poate prin interfața standard Windows Explorer Explorer gestionează (șterge/mută) fișiere cu căi lungi. Când încercați să creați/copiați un fișier într-un astfel de director, apare o eroare:

Calea spre destinație prea lungă. Numele (numele) fișierului ar fi prea lung pentru folderul de destinație. Puteți scurta numele fișierului și puteți încerca din nou sau puteți încerca o locație care are o cale scurtă

Alte programe/casete de dialog pot raporta prezența restricției în felul lor.

De acord, este amuzant că este 2014 și încă vorbim despre limita de 260 de caractere pe pagină. lungime maxima căi în Windows... Dar se pare că nu sunt așteptate schimbări fundamentale în viitorul apropiat și chiar și în cel mai recent Windows 10 Technical Preview această limitare încă există.

În acest articol vom arăta cum în Windows puteți lucra cu fișiere a căror cale depășește 260 de caractere. În acest caz, sarcina noastră este să ștergem un director care conține fișiere cu o lungime mare de cale.

Când încercați să ștergeți un astfel de director din Explorer, apare o eroare:

Numele fișierului ar fi prea lung pentru folderul de destinație. Puteți scurta numele fișierului și puteți încerca din nou sau puteți încerca o locație care are o cale scurtă.

De asemenea, Powershell nu poate gestiona corect directoarele și fișierele cu căi mari care depășesc 260 de caractere. Când încercați să ștergeți un director cu astfel de fișiere (C:\Install\MS SQL 2012 Express Edition pe 64 de biți\verylongpath), apare o eroare:

Remove-Item .\verylongpath -Recurse

Remove-Item: Calea specificată, numele fișierului sau ambele sunt prea lungi. Numele de fișier complet calificat trebuie să fie mai mic de 260
caractere, iar numele directorului trebuie să aibă mai puțin de 248 de caractere.
La linia:1 char:1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
pe
+ FullyQualifiedErrorId: RemoveItemIOError, Microsoft.PowerShell.Commands.RemoveItemCommand

Cea mai simplă opțiune (este, de fapt, sugerată în fereastra de eroare) este de a scurta numele folderelor părinte, reducând lungimea totală a căii (dar aceasta nu este întotdeauna aplicabilă).

Mklink /d c:\install\link „C:\Install\MS SQL 2012 Express Edition pe 64 de biți\verylongpath”

O altă opțiune, care amintește de lucrul cu o legătură simbolică, este să mapați folderul problematic pe un disc virtual (în exemplul nostru X:), reducând astfel și lungimea căii:

Subst X: „C:\Install\MS SQL 2012 Express Edition pe 64 de biți\verylongpath”

Acum puteți lucra cu date pe unitatea X:, căile către fișiere în care nu vor depăși limita. După terminarea lucrului, puteți șterge discul virtual:

Sub X: /d

Dar personal, ceea ce îmi place cel mai mult pentru sarcina de ștergere a datelor în astfel de situații este capacitatea robocopy.exe, care sprijină lucrul cu căi lungi.

Folosind opțiunea /MIR, utilitarul robocopy poate crea o copie completă (oglindă) a directorului sursă în directorul țintă. Și, dacă folderul sursă este gol, toate datele din folderul țintă sunt, de asemenea, șterse. Să creăm un folder gol C:\Instalare\testși folosind argumentul /MIR, copiați conținutul folderului de testare în folderul țintă (dacă numele folderului conține spații sau caractere chirilice, calea trebuie inclusă între ghilimele).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition pe 64 de biți\verylongpath"

După executarea comenzii, conținutul directorului C:\Install\MS SQL 2012 Express Edition pe 64 de biți\verylongpath este șters (înlocuit cu conținutul directorului gol).

Așadar, astăzi am arătat câteva trucuri simple pe care le puteți folosi atunci când lucrați cu foldere pe servere de fișiere care conțin foldere a căror lungime de cale depășește limita de 260 de caractere.

Sala de operație nocivă sistem Windows Nu vă lasă să ștergeți fișierul și strigă că are „Calea sursă este prea lungă”? În acest articol vă voi spune cum să învingeți ușor și simplu, fără niciun program, acest flagel prin scurtarea numelui fișierului.

Drumul către sursă este prea lung - de ce?

Aș dori să explic imediat de ce apare o astfel de avertizare de sistem și nu este posibil să efectuați acțiuni de bază de copiere sau ștergere a unui fișier (dosar)...

Notificarea în sine conține răspunsul la această întrebare - sistemul de fișiere Windows nu acceptă (nu înțelege) nume fișiere sursă mai mult de 255 de caractere.

Dar numele fișierului sau folderului tău este scurt, de exemplu, „Fotografii de vacanță”? Faptul este că sistemul „prost” percepe întreaga cale către fișier ca numele său. Dacă fișierul sau folderul dvs. se află undeva prea adânc manager de fișiere, atunci numele lui pentru ea va arăta cam așa...

Deci simbolurile numelor sunt adunate într-o bandă de peste 255 de bucăți.

Cum să ștergeți un fișier sau un folder care nu poate fi șters în acest caz? Este foarte simplu - trebuie să scurtați numele fișierului (calea) redenumind folderele imbricate.

Cum să ștergeți un fișier cu un nume lung

Vă voi arăta cu exemplul meu cum să ștergeți un fișier cu un nume lung care, așa cum scrie sistemul, are o cale prea lungă către sursă.

Ieri m-am hotarat curățați-vă computerul din cele vechi copii de rezervă site-ul, dar nu au vrut să fie șterse. După cum ați ghicit, a apărut un avertisment că drumul către sursă este prea lung...

Pornind de la primul folder din această cale lungă, am redenumit mai multe lucruri...

...și a încercat din nou să scap de fișierul cu un nume acum mai scurt - a mers în siguranță în țara fișierelor șterse.

Desigur, noul nume de fișier (dosar) ar trebui să fie format dintr-un caracter sau număr, ca în exemplul meu.

Așa se rezolvă cu ușurință problema ștergerii fișierelor sau folderelor cu nume lung. Aceasta nu este singura metodă, desigur. Poate sa programe specialeșterge sau prin registry - tocmai am arătat metoda manuală. Pentru unii va dura doar un minut, pentru alții va dura o jumătate de oră - depinde de dvs. să decideți cum să scurtați numele fișierului și calea prea lungă către sursă.

Până nou sfaturi utileși programe de calculator interesante.

Titlul s-a dovedit a fi lung, dar indică esența problemei care va fi descrisă aici. Recent am întâlnit o situație nu prea bună. În timp ce sortam hard disk-ul și îl ștergeam de lucruri inutile, am descoperit că unul dintre fișiere nu a fost șters, dar a apărut următoarea eroare: „Sistemul de fișiere nu acceptă nume de fișiere sursă atât de lungi. Încercați să mutați fișierul într-un folder cu o lungime de cale mai scurtă sau specificați un nume de fișier mai scurt și încercați din nou."

Nu numai că nu am putut șterge fișierul, dar nici nu am putut schimba numele cu un nume mai scurt. Pentru mulți, acest lucru ar părea un punct mort, deoarece se dovedește că fișierul nu este șters.

De fapt, problema poate fi rezolvată foarte simplu și rapid, iar acum voi descrie două metode de rezolvare și rămâne la latitudinea dvs. să decideți pe care să o utilizați.

Ce să faci dacă calea către sursă este prea lungă, cum să ștergi un astfel de fișier?

Dacă aveți un fișier care nu este șters din cauza unui nume lung, există mai multe opțiuni pentru a rezolva problema. De exemplu, un fișier este imbricat în mai multe directoare, să spunem cinci sau chiar zece foldere care au nume de 10-20 de caractere, atunci acesta poate fi motivul pentru care nu ștergeți fișierul. Cert este că Windows nu acceptă fișiere ale căror nume au mai mult de 260 de caractere. Dacă această limită este depășită, va apărea eroarea pe care am arătat-o ​​mai sus. Numărul de foldere cu nume proprii și numele fișierului în sine ar trebui să însumeze mai puțin de 260 de caractere. Sistemul are și o caracteristică - dacă această limită este depășită, putem totuși redenumi folderele. Aceasta înseamnă că trebuie să redenumiți toate folderele cu un nume scurt, de exemplu, o literă sau un număr.


Această problemă poate apărea nu numai pentru că ați dat un nume atât de lung. Mi s-a întâmplat asta când am decis să descarc fișierele site-ului de pe server și să fac ceva. Deoarece fișierele nu mai erau necesare, am șters întregul director cu fișierele site-ului, dar după cum s-a dovedit, acesta conținea un fișier cu un nume foarte lung, plus nume de foldere, iar acest lucru nu mi-a permis să-l șterg pe tot.

Metoda a doua va ajuta dacă primul a eșuat. Faptul este că nu toate folderele care duc la un fișier cu nume lung pot fi redenumite și va apărea aceeași eroare a sistemului de fișiere. Apoi puteți crea un disc virtual folosind oricare dintre subfolderele care conduc la fișierul care nu poate fi șters. Acum vă voi arăta cum să faceți asta.

Deschideți linia de comandă. Pentru a face acest lucru, apăsați combinația Win+R și introduceți comanda cmd. Puteți face clic dreapta pe meniul Start (sau pe combinația de taste Win+X) și selectați Command Prompt acolo.

Acum scrieți o comandă care va crea un disc virtual pentru noi:

Trebuie să selectați o literă de unitate care nu este ocupată de alții. Partiție de sistem De obicei, literele C sunt indicate, iar a doua secțiune este indicată ca D sau E, apoi alegeți oricare alta.

Calea către folder trebuie specificată de pe disc. Dacă acest lucru este dificil pentru dvs., atunci deschideți folderul care va acționa ca un disc virtual și copiați calea către acesta în Explorer în partea de sus.

Comanda mea arată astfel:

Când mergem la My Computer, ar trebui să vedeți acolo o unitate cu litera pe care i-am atribuit-o din linia de comandă. Astfel, calea către fișier va fi redusă cu aproape jumătate, ceea ce înseamnă că lungimea totală a caracterelor poate fi mai mică de 260 de caractere. Acum poți încerca să scapi de undeletable.


Pentru a șterge un disc virtual trebuie să introduceți comanda:

substDiskLetter/d

Folosind Total Commander

Pe Internet, am descoperit o metodă care vă permite să ștergeți fișiere care nu pot fi șterse folosind . Desigur, dezavantajul aici este că va trebui să instalați software suplimentar pe computer și nu toată lumea va dori să facă acest lucru. În orice caz, voi lăsa această metodă aici în cazul în care cineva dorește să o folosească.

Descărcați și instalați programul. Să mergem la filă "Fişier" click pe sectiune „Schimbați atributele”. Apare o fereastră în care eliminăm bifele din toate atributele. Dacă nu există nicio bifă lângă elementul din partea de sus „Procesează conținutul directorului”- alege. Acum din același program încercăm să ștergem un fișier cu nume lung.


Folosim arhivatorul 7-Zip

Pentru această sarcină vom avea nevoie de un arhivator 7-Zip. Faceți clic dreapta pe directorul de pornire și îndreptați mouse-ul spre partiție „7-Zip”și selectați elementul "Adauga la arhiva".

Apare o fereastră în care trebuie să bifați o singură casetă. „Ștergeți fișierele după compresie”. Apoi faceți clic pe OK.

O arhivă cu toate aceste lucruri este creată pe desktop, iar folderele cu fișiere lungi sunt pur și simplu șterse. Puteți șterge arhiva în sine fără probleme.

Acestea sunt modalitățile pe care le-am analizat pentru a remedia eroarea fișierului care nu este șters. Poate ai alte opțiuni despre cum să faci asta?