Stránka 1 z 4

Zacyklení při kopírování

Napsal: 02 led 2023, 00:09
od Celeron
Byl mě příbuzenstvem donesen PC s W7/32, kde při kopírování došlo k nějakýmu zacyklení a výsledkem je asi 150 úrovní do sebe vnořených adresářů se soubory. Ty úplně nejvíc vnořený nejdou smazat, přejmenovat. Zkusil jsem od těch adresářů nejvíc nahoře zkrátit názvy na jeden znak, posunul jsem se s možností s tím něco dělat mnohem hloub ale pak zase konec, příliš dlouhý název souboru...
Tohle https://www.instaluj.cz/magazin/jak-nas ... -souborum- bohužel na W7 nefunguje...
Dá se s tím prosím něco udělat kromě hluboké orby? Je to bohužel na C:

Napsal: 02 led 2023, 00:35
od PotPalo
Čo tak skúsiť príkazový riadok a z neho príkaz DEL s použitím krátkeho mena súboru vo formáte 8.3? Pre výpis vo formáte 8.3 treba dať DIR /x /p. Mal som prípad že na ploche bol súbor ktorý nijako nešiel premenovať, presunúť a ani zmazať lebo dlhý názov obsahoval nejaké špeciálne znaky, ale na krátke meno to zmazať išlo. Nech žije ~1 :wink:

Napsal: 02 led 2023, 00:59
od Celeron
Ani ťuk. Když jsem zkusil z příkazovýho RMDIR adresář /S tak hora výpisú "dlouhý soubor". Někde jsem četl, že to umí Total Commandér. Je to blábol.

Napsal: 02 led 2023, 02:21
od workhard
Na mazání nesmazatelných souborů jsem kdysi použil nějaký softík třetí strany nalezený na netu a fungovalo to. Název už si ale nepamatuju.

Napsal: 02 led 2023, 04:21
od nixdorf
Ajajaj, starý známy MAX_PATH vo winapi. Typický prípad - súborový systém dlhé cesty dovolí, ale súčasti OS a aplikácie používajúce ortodoxné windows API nie, kvôli spätným kompatibilitám.
Nastavenie LongPathsEnabled (šumák či cez registry alebo group policy) prišlo až s Windows 10 build 1803, plus ešte k tomu aplikácie musia mať longPathsAware manifest, čiže pre teba s W7 platné jak mrtvému zimník, nič to robiť nebude.

Máš (aspoň) štyri možnosti na vyskúšanie:

1) použi to ako sieťovú cestu s UNC prefixom \\?\, na ten by sa nemalo vzťahovať toto obmedzenie dlhých ciest. Podaj to rmdir do príkazového riadka pre rmdir, alebo to napasuj do powershellu, tam napr. cez Remove-Item s -Recurse a -Force

Kód: Vybrat vše

rmdir /s "\\?\c:\Hustodemonsky\Krutoprisna\Cesta"

Kód: Vybrat vše

Remove-Item -Path "\\?\c:\Hustodemonsky\Krutoprisna\Cesta" -Recurse -Force
(zmaže adresár Cesta a všetko od neho hore)

2) interné windowsové robocopy s príkazom purge. Vytvor najskôr dočasný prázdny adresár, napr. c:\pokus, a následne z príkazového riadka spusti

Kód: Vybrat vše

robocopy "c:\pokus" "c:\Hustodemonsky\Krutoprisna\Cesta" /purge
(zložku "Cesta" ponechá, zmaže všetko od nej hore. Následne zmaž c:\pokus).

3) alebo sa prebúraj k ceste cez subst, pokiaľ to až pôjde, prípadne vytvorením NTFS symbolického odkazu cez mklink a maž odtiaľ,

4) ad workhard, teda stiahnuť treťostrannú aplikáciu na likvidovanie dát na disku, alebo nabootovať Win >=10, alebo Linux (s NTFS drivrom so zápisom, dnes je to snáď už bežné).
Avšak aspoň jeden z tých troch bodov, ktoré využívajú to, čo vo windowse už je, by malo zafungovať. :wink:

Napsal: 02 led 2023, 06:29
od EKKAR
Nejjednodušší je nabootovat nějakej Linux, v něm otevřít danej adresář a chorou složku smazat v něm. Někdy stačí i jen přejmenovat konkrétní soubor, jednodušší ale je samozřejmě pokud vím, že soubor nebudu potřebovat, smazat ho. Je to nejrychlejší cesta a mít po ruce bootovací CD nebo flešku s nějakou distribucí "tučňáka" je dneska už skoro povinná vejbava pro každýho, kdo se potřebuje občas podívat nějakýmu kompu "pod sukně" ...

Napsal: 02 led 2023, 08:02
od p32
Toto vzniká jen při tom, kdy někdo dá kopírovat adresář do sebe sama. V určitém momentě to skončí pro tzn. "dlouhou cestu".
Řešení je naprosto jednoduché. Přejmenovat některé adresář a soubory na kratší názvy třeba v tom TC.

Napsal: 02 led 2023, 08:34
od petrfilipi
A checkdisk tohle neopraví?

PF

Napsal: 02 led 2023, 08:36
od rnbw
Nie, to nie je chyba vo filesysteme.

Napsal: 02 led 2023, 09:08
od EKKAR
p32 píše:Toto vzniká jen při tom, kdy někdo dá kopírovat adresář do sebe sama. V určitém momentě to skončí pro tzn. "dlouhou cestu".
Řešení je naprosto jednoduché. Přejmenovat některé adresář a soubory na kratší názvy třeba v tom TC.
Ne, někdy ani TC nepomůže. Widle ti prostě odmítnou přejmenovat soubor, kterej je hluboko uloženej vícenásobným vnořením do složek - s tím, že označení souboru je příliš dlouhé. Přitom když ho tam ukládaly, tak jim to nevadilo. A když si máš kvůli smazání jednoho pitomýho fajlu přejmenovat na jednoznakový označení třeba 6 nebo i víc složek uloženejch jedna ve druhý - a pamatovat si v jakým pořadí byly která jak popsaná, abys to moh následně vrátit - ne, to už je fakt jednodušší a rychlejší nabootovat si toho Tučňáka a smazat ten soubor z něj.

Napsal: 02 led 2023, 09:11
od rnbw
Navyse to premenovanie nemusi stacit na dostatocne skratenie cesty.

Napsal: 02 led 2023, 09:35
od jardafiala
Jak píše EKKAR - rozumná cesta je LINUX nebo nabootovat DOS 6.xx a smazat voloviny v soborovém manageru M602, nebo NC či něčem podobném.

Napsal: 02 led 2023, 09:44
od Celeron
p32 píše: Řešení je naprosto jednoduché. Přejmenovat některé adresář a soubory na kratší názvy třeba v tom TC.
Právě že není!!! Kdyby sis pořádně přečetl problém, tak bys věděl, že ta dlouhá cesta je tvořená jen samotnejma adresářema naskládanejma nad sebe. Všechny jsem pracně přepsal na jednoznakovej název. Ale nestačí to, těch adresářů je moc a od určitý úrovně už nejde se souborama v nich nic dělat.

Napsal: 02 led 2023, 09:53
od xsc
Mimo již nabízených možností Linux/namapování jako síťový disk bych zkusil vzít disk, dát ho do šuplíku/na kšandu a připojit pod Windows 10 s tou změnou v registru. Jen pak pozor, pokud bude disk na kšandě, je potřeba Win10 ukončit restartem, ne vypnutím, pokud nemáš změněno nastavení quick bootu. U šuplíku stačí normální USB odpojení.
Pod W7/32 by možná šlo pustit VC v command promptu. Tomu předhazuje jen 8.3 názvy. Ale jestli překročil určitou hloubku adresářové struktury, asi zblbne celé cmd...

Napsal: 02 led 2023, 10:02
od forbidden
Než budeš blbnout s Linuxem, zkus Unlocker, primárně sice slouží k něčemu jinýmu, ale měl by to umět smáznout taky.