Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Sigurnost
  • Datoteka se ne može otvoriti; naziv datoteke je predug. Ako se datoteka s dugim nazivom ne izbriše i pojavi se pogreška da datotečni sustav ne podržava tako duga imena

Datoteka se ne može otvoriti; naziv datoteke je predug. Ako se datoteka s dugim nazivom ne izbriše i pojavi se pogreška da datotečni sustav ne podržava tako duga imena

Nije tajna da Windows Explorer, kao i većina drugih Windows aplikacija, uključujući PowerShell, ne može raditi s objektima datotečnog sustava s dubokim ugniježđenjem mapa. čija duljina putanje prelazi 260 znakova. Štoviše, ovo ograničenje postoji samo na razini aplikacije, a sam datotečni sustav NTFS podržava putanje datoteka do 32767 likovi.

Ovo ograničenje nameće knjižnica Win32 API, a čija je maksimalna duljina staze 260 znakova ( MAX_PATH=260). Općenito, put se sastoji od sljedećih elemenata: +[put_od_256_znakova]+[ ] , a maksimalna duljina jednog direktorija/datoteke u NTFS-u je 255 znakova u Unicodeu. Kada koristite Unicode API funkcije, moguće je koristiti stazu do 32767 likovi. Zahvaljujući tome, mnogi programi trećih strana (isti popularni upravitelji datoteka, na primjer DALEKO I Total Commander) bez ikakvih poteškoća obrađuje datoteke/mape čija duljina putanje prelazi 260 znakova.

Savjet. Možete zaobići ovo ograničenje Win32 API-ja i raditi s dugim nazivima datoteka korištenjem UNC formata staze, navodeći apsolutnu stazu do datoteke pomoću prefiksa staze proširene duljine \\?\ . Na primjer, ovako \\?\C:\SomeLongPath\LongNameFile.txt

Ovo se ograničenje također ne primjenjuje kada korisnici imaju mrežni pristup datotekama putem SMB protokola (zbog toga su strukture direktorija s dugim stazama uobičajene na poslužiteljima datoteka s korisničkim podacima). Administrator koji održava ovaj poslužitelj ne može upravljati (brisati/premještati) datotekama s dugim stazama kroz standardno sučelje Windows Explorera. Prilikom pokušaja kreiranja/kopiranja datoteke u takav direktorij pojavljuje se pogreška:

Odredišni put je predug. Nazivi datoteka bili bi predugački za odredišnu mapu. Možete skratiti naziv datoteke i pokušati ponovno ili pokušati s lokacijom koja ima skraćeni put

Drugi programi/dijaloški okviri mogu prijaviti prisutnost ograničenja na svoj način.

Slažete se, smiješno je da je 2014. godina, a još uvijek govorimo o ograničenju od 260 znakova na maksimalnoj duljini staze u Windowsima... No, čini se da se ne očekuju drastične promjene u skoroj budućnosti, pa čak ni u najnovijoj Windows 10 Technical Preview ovo ograničenje još uvijek postoji.

U ovom ćemo članku pokazati kako u sustavu Windows možete raditi s datotekama čiji put premašuje 260 znakova. U ovom slučaju, naš zadatak je izbrisati direktorij koji sadrži datoteke s dugom duljinom putanje.

Kada pokušate izbrisati takav direktorij iz Explorera, pojavljuje se pogreška:

Nazivi datoteka bili bi predugi za odredišnu mapu. Možete skratiti naziv datoteke i pokušati ponovno ili pokušati s lokacijom koja ima skraćeni put.

Powershell također ne može ispravno rukovati direktorijima i datotekama s velikim stazama koje prelaze 260 znakova. Kada pokušate izbrisati direktorij s takvim datotekama (C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath), pojavljuje se pogreška:

Remove-Item .\verylongpath -Recurse

Remove-Item: navedena staza, naziv datoteke ili oboje su predugi. Potpuno kvalificirani naziv datoteke mora biti manji od 260
znakova, a ime direktorija mora biti manje od 248 znakova.
U retku:1 znak:1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
na
+ FullyQualifiedErrorId: RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

Najjednostavnija opcija (zapravo je predložena u prozoru pogreške) je skratiti naziv nadređenih mapa, smanjujući ukupnu duljinu staze (ali to nije uvijek primjenjivo).

Mklink /d c:\install\link “C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath”

Druga opcija, koja podsjeća na rad sa simboličkom vezom, je mapiranje problematične mape na virtualni disk (u našem primjeru X:), čime se također smanjuje duljina puta:

Subst X: “C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath”

Sada možete raditi s podacima na disku X:, čiji putovi do datoteka neće premašiti ograničenje. Nakon završetka rada, možete izbrisati virtualni disk:

Supst X: /d

Ali osobno, ono što mi se najviše sviđa kod zadatka brisanja podataka u takvim situacijama je mogućnost robocopy.exe, koji podržava rad s dugim stazama.

Korištenje opcije /MIR, uslužni program robocopy može stvoriti potpunu kopiju (zrcaljenje) izvornog direktorija u ciljnom direktoriju. A ako je izvorna mapa prazna, brišu se i svi podaci u ciljnoj mapi. Kreirajmo praznu mapu C:\Instaliraj\testiraj i pomoću argumenta /MIR kopirajte sadržaj testne mape u ciljnu mapu (ako naziv mape sadrži razmake ili ćirilične znakove, putanja mora biti u navodnicima).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

Nakon izvršenja naredbe, briše se sadržaj direktorija C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath (zamjenjuje se sadržajem praznog direktorija).

Dakle, danas smo pokazali neke jednostavne trikove koje možete koristiti kada radite s mapama na datotečnim poslužiteljima koji sadrže mape čija duljina putanje premašuje ograničenje od 260 znakova.

Sprečava li vas štetni Windows operativni sustav da izbrišete datoteku i kaže da je "izvorni put predug"? U ovom članku ću vam reći kako lako i jednostavno, bez ikakvih programa, pobijediti ovu pošast skraćivanjem naziva datoteke.

Put do izvora je predug - zašto?

Htio bih odmah objasniti zašto se pojavljuje takvo upozorenje sustava i nije moguće izvršiti osnovne radnje kopiranja ili brisanja datoteke (mape)…

Sama obavijest sadrži odgovor na ovo pitanje - datotečni sustav Windows ne podržava (ne razumije) nazive izvornih datoteka dulje od 255 znakova.

Ali naziv vaše datoteke ili mape je kratak, na primjer, "Vacation Photos"? Činjenica je da "glupi" sustav percipira cijeli put do datoteke kao svoje ime. Ako se vaša datoteka ili mapa nalazi negdje preduboko u upravitelju datotekama, tada će njen naziv izgledati otprilike ovako...

Tako su simboli imena skupljeni u skupinu od više od 255 komada.

Kako u ovom slučaju izbrisati datoteku ili mapu koja se ne može izbrisati? Vrlo je jednostavno - trebate skratiti naziv datoteke (put) preimenovanjem ugniježđenih mapa.

Kako izbrisati datoteku s dugim nazivom

Pokazat ću vam na svom primjeru kako izbrisati datoteku dugog imena koja, kako sustav piše, ima predug put do izvora.

Jučer sam odlučila očistite svoje računalo iz starih rezervnih kopija stranice, ali nisu htjeli biti izbrisani. Kao što pretpostavljate, pojavilo se upozorenje da je put do izvora predug...

Počevši od prve mape na ovom dugom putu, preimenovao sam nekoliko stvari...

...i ponovno se pokušao riješiti datoteke sada kraćeg imena - sigurno je otišla u zemlju obrisanih datoteka.

Naravno, naziv nove datoteke (mape) trebao bi se sastojati od jednog znaka ili broja, kao u mom primjeru.

Ovako se lako rješava problem brisanja datoteka ili mapa s dugim nazivom. Ovo naravno nije jedina metoda. Limenka ukloniti posebnim programima ili kroz registar - upravo sam pokazao ručnu metodu. Nekima će to trajati samo minutu, drugima pola sata - na vama je da odlučite kako ćete skratiti naziv datoteke i predugi put do izvora.

Do novih korisnih savjeta i zanimljivih računalnih programa.

Evo primjera strukture mape koju sam nazvao "velika lutka":

Kao što vidite, na disku “D” (Podaci) nalazi se izvorna video mapa, u njoj je mapa “Filmovi”, u njoj je “Sve što vam je potrebno za gledanje filmova” i zatim na isti način mapa unutar mape. Istodobno, mnoge mape imaju dugačka imena i nazive - više od 10-15 znakova, što će ukupno dati volumen znakova u svim imenima više od 260. A ako na kraju takve "matrjoške" postoji datoteku, onda se može ispostaviti da ne možete raditi s njom možete... Ponekad vam sam sustav ne dopušta da na kraju napravite mapu ili datoteku koja premašuje dopušteni broj znakova, ali ponekad se iz nekog razloga to dogodi.

Prvo, za početnike, objasnit ću što je put datoteke i mape. Put je takozvana adresa na računalu na kojoj se nalazi datoteka ili mapa. Na primjer, datoteka pod nazivom “My file.txt” nalazi se na lokalnom disku D: u mapi “Documents”. Tada će put do ove datoteke izgledati ovako:

D:\Dokumenti\Moja datoteka.txt

Ili, na primjer, ovako će izgledati put iz gornjeg primjera, gdje sam pokazao složenu strukturu mape.

Kao što vidite, broj znakova u gornjoj stazi je velik i moguće je da će na kraju biti datoteka ili mapa s dugim nazivom koju ne možete izbrisati.

Kada pokušate izbrisati datoteku s dugim nazivom staze, dobit ćete prozor s pogreškom poput ove:

Pokušao sam umjetno stvoriti problem i evo što sam dobio.

Na pogonu "D" stvorio sam mapu s kratkim nazivom "1" i smjestio datoteku s vrlo dugim nazivom u nju. Evo primjera:

Sada također preimenujem tu mapu "1" u neko vrlo dugo ime, na primjer:

Zanimljivo, Windows vam slobodno dopušta preimenovanje mape u tako dugo ime, unatoč činjenici da broj znakova u nazivu ove mape + naziv datoteke već prelazi 260! Pa, nakon preimenovanja mape u dugo ime, više ne mogu izbrisati datoteku koja se nalazi u njoj i prikazuje se pogreška.

Ili evo još jednog primjera... Održavam web stranicu Moskovskog koledža za izradu instrumenata, gdje sam prethodno radio puno radno vrijeme, a ponekad koristim kopiju stranice na svom računalu da testiram neke nove "dobrote" za stranicu. Što ako instaliram nešto loše i web stranica na hostingu umre? :) I tako to provjerim na svom računalu i ako je sve u redu, onda to postavim na pravu web stranicu koja se nalazi na hostingu. Tako sam jednom cijelu stranicu prebacio s hostinga da testiram jednu stvar, a nakon završetka rada odlučio sam obrisati mapu sa stranicom s računala. Uostalom, teži oko 6 GB. Izbrisana je cijela stranica, osim određenog broja mapa. Počeo sam tražiti i vidio da one mape koje su sadržavale datoteku s dugim nazivom u obliku hijeroglifa nisu izbrisane:

Pokušao sam ponovno izbrisati ovu datoteku s dugim nazivom i vidio sam istu grešku koju sam spomenuo gore. Pokušao sam ga preimenovati, ali ni to ne ide. Pa, morao sam razmisliti kako riješiti problem.

Kako riješiti problem brisanja mape/datoteke s dugim imenom putanje!

Pokušao sam na 2 načina izbrisati mapu/datoteku s dugim nazivom u putu do nje. Oba nisu tehnički teška (pogotovo 1.), pa mislim da se početnik može snaći ako sve radi točno onako kako ja pokazujem:

    Preimenujte više mapa u putu datoteke u kraći naziv. Ovo je najjednostavnije rješenje koje bi već trebalo pomoći mnogima! Pretpostavimo da imate datoteku u mapi s vrlo dugim nazivom koju ne možete izbrisati, otvoriti, kopirati i općenito ne možete raditi s njom.

    Zatim pokušajte jednostavno preimenovati mapu u kojoj se nalazi datoteka s dugim nazivom, na primjer, u "1". Dopustite mi da se vratim na jedan od gornjih primjera. Ovdje je mapa s dugim nazivom:

    Koristeći standardni Windows Explorer, promijenio sam naziv te mape u "1" i ovako sada izgleda put do datoteke:

    Sada možete sigurno raditi s datotekom; sustav će vam omogućiti da je otvorite, preimenujete i izbrišete.

    Ako imate dugačko stablo mapa, tj. poput lutke za gniježđenje, u jednoj mapi nalazi se druga, u njoj je još jedna, pa još jedna, a zatim počnite preimenovati od prve mape iz ove lutke za gniježđenje. Ne sa zadnjim na listi, nego sa prvim!

    Može se dogoditi da postoji ogroman broj mapa i nećete moći preimenovati neke od njih zbog iste pogreške ili će vam trebati puno vremena. U ovom slučaju predlažem drugu metodu.

    Metoda je da možete uzeti neku mapu, na primjer, u sredini zajedničkog stabla i povezati je kao virtualni disk. Virtualni disk je nešto što nas podsjeća na obični lokalni disk, ali koji je jednostavno vezan za određenu mapu, na primjer, za brzu interakciju s njim.

    Recimo da imate dugačak put poput ovog:

    D:\Video\Moji filmovi\Sve što vam je potrebno za gledanje filmova\Programi za gledanje filmova\Kako otvoriti MP4 filmove\Popis MP4 primjera filmova\Popis programa za otvaranje MP4\Što ne raditi kada otvarate MP4 datoteke

    Pretpostavimo da u posljednjoj mapi imamo neku problematičnu datoteku s kojom ne možemo raditi, budući da je put do nje, kao što vidimo, prilično dug :)

    Možemo uzeti i povezati jednu od mapa s dugim imenom u sredini staze kao virtualni disk. Neka ovo bude mapa "Programi za gledanje filmova".

    Za povezivanje virtualnog diska potrebna nam je takozvana Windows naredbena linija, tj. konzola.

    Možete ga otvoriti putem Windows pretraživanja. U pretraživanju upišite “Command Line”:

    U prozor naredbenog retka trebamo upisati naredbu:

    subst virtual_disk_letter "put_do_mape"

    Možete postaviti bilo koje slovo pogona, sve dok nije već zauzeto jednim od lokalnih pogona. Na primjer, imate lokalni disk C i D, što znači da više ne možete zvati virtualni pogon istim slovom. Možete ga nazvati, na primjer, slovom "X", jer se rijetko koristi u sustavu Windows.

    Za put do mape umetnite put do mape koju želite povezati kao virtualnu. Kao što sam već rekao, u mom primjeru ćemo “Programi za gledanje filmova” napraviti kao virtualnu mapu, što znači da putanju treba navesti ovako:

    D:\Video\Moji filmovi\Sve što vam je potrebno za gledanje filmova\Programi za gledanje filmova\

    Dakle, konačna naredba u mom slučaju izgledat će ovako:

    subst X: “D:\Video\Moji filmovi\Sve što vam je potrebno za gledanje filmova\Programi za gledanje filmova\”

    Za izvršenje unesene naredbe pritisnite tipku “Enter” na tipkovnici. Virtualni disk će biti kreiran.

    Sada idemo u Windows Explorer, idite na odjeljak "Ovo računalo" (ili "Računalo") i tamo pogledajte stvoreni virtualni disk:

    Možete ga razlikovati po slovu. Dodijelio sam slovo "X" virtualnom disku. Sada ako otvorimo ovaj virtualni disk, odmah ćemo se naći u mapi "Programi za gledanje filmova". Oni. uzeli smo i presjekli pola puta do posljednje mape.

    Za usporedbu...

    Prethodno je put do konačne mape izgledao ovako:

    D:\Video\Moji filmovi\Sve što vam je potrebno za gledanje filmova\Programi za gledanje filmova\Kako otvoriti MP4 filmove\Popis MP4 primjera filmova\Popis programa za otvaranje MP4\Što ne raditi kada otvarate MP4 datoteke

    Nakon povezivanja virtualnog diska s mapom “Programi za gledanje filmova”, put do konačne mape izgleda ovako:

    X:\Kako otvoriti MP4 filmove\Popis primjera MP4 filmova\Popis programa za otvaranje MP4\Što ne raditi prilikom otvaranja MP4 datoteka

    Osjećate li razliku? Put je skraćen za pola, jer nas slovo pogona odmah usmjerava na mapu u sredini putanje :) A kako je put jako skraćen, vjerojatno ste sada uklonili ograničenje znakova u imenima datoteka i mapa i hoćete biti u mogućnosti izbrisati datoteku ili mapu s dugim nazivom!

    Nakon što riješite problem s datotekom, virtualni disk možete ponovno obrisati kako ne bi bio trn u oku Exploreru.

    Da biste to učinili, ponovno otvorite Windows naredbeni redak i unesite naredbu:

    Subst virtual_disk_letter /d

    U mom slučaju slovo pogona je "X", pa bi naredba izgledala ovako:

Kad sam razmišljao o mogućnostima rješavanja problema, kako izbrisati mapu ili datoteku s dugim nazivom, na internetu sam pronašao drugu opciju: obrišite problematičnu datoteku putem programa Total Commander. Probao sam, nije išlo, zato nisam preporučio ovu metodu :)) A metoda, čak i ako bi nekome uspjela, iskreno nije zabavna, jer morate instalirati dodatni program na svoj računalo kako biste izbrisali samo jednu datoteku ili mapu s dugim nazivom...

Mislim da ako se pojavi sličan problem, koji sam imao više puta, neka od gore opisanih metoda će vam sigurno pomoći.

To je sve! Vidimo se uskoro u sljedećim člancima ;)

Naslov je ispao dugačak, ali ukazuje na bit problema koji će ovdje biti opisan. Nedavno sam se susreo s ne baš dobrom situacijom. Dok sam sortirao tvrdi disk i čistio ga od nepotrebnih stvari, otkrio sam da jedna od datoteka nije izbrisana, ali se pojavila sljedeća pogreška: “Datotečni sustav ne podržava tako dugačka imena izvornih datoteka. Pokušajte premjestiti datoteku u mapu s kraćom putanjom ili navedite kraći naziv datoteke i pokušajte ponovno."

Ne samo da nisam mogao izbrisati datoteku, nego nisam mogao ni promijeniti naziv u kraći naziv. Za mnoge bi to izgledalo kao slijepa ulica, jer ispada da se datoteka ne briše.

Zapravo, problem se može riješiti vrlo jednostavno i brzo, a sada ću vam opisati dvije metode rješavanja, a na vama je da odlučite koju ćete koristiti.

Što učiniti ako je put do izvora predug, kako izbrisati takvu datoteku?

Ako imate datoteku koja se ne briše zbog dugog naziva, postoji nekoliko opcija za rješavanje problema. Na primjer, datoteka je ugniježđena u nekoliko direktorija, recimo pet ili čak deset mapa koje imaju nazive od 10-20 znakova, to može biti razlog zašto se datoteka ne briše. Činjenica je da Windows ne podržava datoteke čiji nazivi imaju više od 260 znakova. Ako se ovo ograničenje premaši, pojavit će se pogreška koju sam prikazao gore. Broj mapa s vlastitim nazivima i sam naziv datoteke trebaju imati manje od 260 znakova. Sustav također ima jednu značajku - ako je ovo ograničenje premašeno, još uvijek možemo preimenovati mape. To znači da morate preimenovati sve mape u kratko ime, na primjer, slovo ili broj.


Ovaj problem može nastati ne samo zato što ste dali tako dugo ime. To mi se dogodilo kad sam odlučio preuzeti datoteke web stranice s poslužitelja i učiniti nešto. Budući da datoteke više nisu bile potrebne, izbrisao sam cijeli direktorij s datotekama web-mjesta, ali kako se pokazalo, sadržavao je datoteku s vrlo dugim nazivom, plus nazive mapa, i to mi nije dopuštalo da je sve izbrišem.

Druga metoda pomoći će ako prvi nije uspio. Činjenica je da se sve mape koje vode do datoteke dugog naziva ne mogu preimenovati i dogodit će se ista pogreška datotečnog sustava. Tada možete stvoriti virtualni disk pomoću bilo koje od podmapa koje vode do datoteke koja se ne može izbrisati. Sada ću vam pokazati kako to učiniti.

Otvorite naredbeni redak. Da biste to učinili, pritisnite kombinaciju Win + R i unesite naredbu cmd. Možete desnom tipkom miša kliknuti izbornik Start (ili kombinaciju tipki Win+X) i tamo odabrati Naredbeni redak.

Sada napišite naredbu koja će nam stvoriti virtualni disk:

Morate odabrati slovo pogona koje ne zauzimaju drugi. Particija sustava obično je označena kao C, a druga particija kao D ili E, zatim odaberite bilo koju drugu.

Put do mape mora biti naveden s diska. Ako vam je to teško, otvorite mapu koja će služiti kao virtualni disk i kopirajte put do nje u Exploreru na vrhu.

Moja naredba izgleda ovako:

Kad odemo na Moje računalo, tamo biste trebali vidjeti pogon sa slovom koje smo mu dodijelili iz naredbenog retka. Time će se put do datoteke smanjiti gotovo za polovicu, što znači da ukupna duljina znakova može biti manja od 260 znakova. Sada se možete pokušati riješiti neizbrisiva.


Za brisanje virtualnog diska potrebno je unijeti naredbu:

substDiskLetter/d

Korištenje Total Commandera

Na internetu sam otkrio metodu koja vam omogućuje brisanje datoteka koje se ne mogu izbrisati pomoću . Naravno, loša strana je što ćete morati instalirati dodatni softver na svoje računalo, a neće svi to htjeti učiniti. U svakom slučaju, ostavit ću ovu metodu ovdje u slučaju da je netko želi koristiti.

Preuzmite i instalirajte program. Idemo na karticu "Datoteka" kliknite na odjeljak "Promijeni atribute". Pojavljuje se prozor u kojem uklanjamo kvačice sa svih atributa. Ako pored stavke na vrhu nema kvačice "Obradi sadržaj direktorija"- izabrati. Sada iz istog programa pokušavamo izbrisati datoteku s dugim nazivom.


Koristimo 7-Zip arhiver

Za ovaj zadatak trebat će nam 7-Zip arhiver. Kliknite desnom tipkom miša na početni direktorij i pokažite mišem na particiju "7-Zip" i odaberite stavku "Dodaj u arhivu".

Pojavljuje se prozor u kojem trebate označiti samo jednu kućicu. "Izbriši datoteke nakon kompresije". Zatim kliknite OK.

Na radnoj površini se stvara arhiva svih tih stvari, a mape s dugim datotekama jednostavno se brišu. Samu arhivu možete obrisati bez problema.

Ovo su načini koje smo pogledali za ispravljanje pogreške datoteke koja se ne briše. Možda imate druge opcije kako to učiniti?

Najbolji članci na temu