2009-09-23 15:56:39 +0000 2009-09-23 15:56:39 +0000
203
203

Hoe verwijder je een bestand in Windows met een te lange bestandsnaam?

Mijn vrouw heeft verschillende bestanden en mappen die op de een of andere manier zijn beland met bestandsnamen waardoor ze niet meer te verwijderen zijn (kunnen niet worden verwijderd) via de normale weg of via de commandoregel. Ik denk dat de bestandsnamen te lang zijn vanwege de diepte van de mapstructuren. Weet iemand een goed hulpmiddel voor het opschonen van dit soort bestanden?

Antwoorden (8)

428
428
428
2012-08-29 13:38:16 +0000

Wanneer u een map volledig wilt verwijderen en deze lange paden bevat, doet robocopy zeer goed werk:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Dit werkt omdat robocopy intern [ de Unicode-bewuste versies van Win32-functies gebruikt, met de \?Wanneer u een map volledig wilt verwijderen en deze lange paden bevat, doetrobocopy` zeer goed werk:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Dit werkt omdat robocopy intern de Unicode-bewuste versies van Win32-functies gebruikt, met de prefix voor bestandspaden ; deze functies hebben een limiet van 2¹⁶-1 (32.767) tekens in plaats van 259.

U moet dit proces wellicht meer dan eens doorlopen om alle bestanden kwijt te raken.

91
91
91
2009-09-23 16:01:40 +0000

Van een opdrachtprompt:

dir /X

Dit zal een lijst van uw bestanden/mappen in korte naamsvorm. Gebruik dan de korte naam precies zoals die is geschreven om het bestand te verwijderen:

del LONGF~1.txt
53
53
53
2009-09-23 17:40:55 +0000

Ik werk me geleidelijk aan een weg naar het pad, waarbij ik elke opeenvolgende bovenliggende map hernoem naar “1” en probeer te verwijderen. Je verkort het pad elke keer effectief en ik heb nog nooit meer dan 4 of 5 mappen hoeven in te werken totdat ik eindelijk in staat ben om de hele mappenstructuur te verwijderen (wat wel of niet kan zijn wat je wilt). Je zou dit ook kunnen doen vanuit de laatste kindermap en je weg naar boven of beneden kunnen werken.

13
13
13
2009-09-23 16:12:29 +0000

In sommige programma’s, waaronder Command Prompt (cmd.exe), kunt u de bestandslimiet omzeilen door het volledige pad met \.In sommige programma's, waaronder Command Prompt (cmd.exe`), kunt u de bestandslimiet omzeilen door het volledige pad met als volgt voor te stellen:

\.\C:\some directory\other directory\a file with long name
13
13
13
2012-02-21 17:18:15 +0000

Un trucco che ho usato per aggirare la limitazione della lunghezza del “percorso completo e del nome del file” al fine di spostare, copiare o cancellare qualcosa è quello di accorciarlo ‘rompendo’ a metà (o più) utilizzando una lettera di unità mappata che punta ad una cartella lungo il percorso.

in modo da avere c:\½ percorso lungo…\e \foo \cartelle \cartelle \cartelle \cartelle \cartelle \cartelle.txt.

Poi mappare una lettera di unità arbitraria in qualche punto lungo il percorso in modo che il primo pezzo del percorso diventi lungo solo pochi caratteri. Pre-requisito: la cartella deve essere in una cartella condivisa (cosa che può già essere se si trova su un server, che è dove ho avuto bisogno di farlo), e se non lo è già, allora scegliete una cartella da qualche parte nel percorso e condividetela. A seconda del vostro ambiente e del vostro livello di paranoia, permettete a tutti di modificare l'accesso alla condivisione purché i permessi NTFS siano ragionevolmente restrittivi. Se si desidera, è sufficiente consentire i diritti di modifica solo al proprio account.

Ora andate nella cartella condivisa o in una all'interno di essa e condividetela, oppure usate la riga di comando come segue. Supponiamo che la cartella condivisa “foo” come “fooshare”, allora si potrebbe fare

net use x: \mycomputername\fooshare\bar\folders /persistent:no

e l'unità X: ora punta direttamente alla cartella “cartelle” all'interno di quella condivisione, quindi “x:\oldfiles\myoldfile.txt” è ora piuttosto breve.

(Il “/persistent:no” significa che questo non sopravviverà al prossimo riavvio e vi confonderà in seguito. Non dimenticate di decomprimere la vostra cartella quando avete finito)

Ricordate, non dovete necessariamente condividere la cartella contenente il file, se è già all'interno di una cartella condivisa potete semplicemente mappare tramite la condivisione e le cartelle annidate in una cartella di destinazione vicina al file e questo funziona bene.

Ho dovuto usare questa tecnica facendo una massiccia robocopia tra due server quando ci siamo resi conto che gli utenti avevano mappato i drive abbastanza in profondità nella struttura delle cartelle, quindi erano stati in grado di usare 255 caratteri da lì, ma che superavano la lunghezza totale del percorso del file quando vi si accedeva dalla root del drive locale.

9
9
9
2009-09-23 15:59:00 +0000

De eenvoudigste manier die ik heb gevonden is om op te starten vanaf een ubuntu live CD.

Als alternatief kun je een gedeelde map maken halverwege het pad en dan een netwerkdrive daarnaar toe wijzen en de verwijdering doen van de gemapte map (zelfs op dezelfde machine)

5
5
5
2009-09-23 19:39:20 +0000

Hernoem de directory van het knippen/plakken van het bestand ergens anders en verwijder het dan. Werkt hier.

of gewoon vanaf de commandoprompt, als je geen zin hebt om door de problemen heen te gaan.

1
1
1
2009-09-23 16:00:00 +0000

Waarschijnlijk niet de beste manier en ik ben geïnteresseerd om te zien wat anderen verzinnen -

Ik heb dit een keer gehad en ik heb een paar dingen geprobeerd zonder enig geluk. In plaats van op zoek te gaan naar een goede tool, ben ik opnieuw gestart met de Windows Disk in, ben ik naar de herstelconsole gegaan en heb ik die daar gewoon verwijderd. Werkte de eerste keer en dat ging heel goed!

deed ook gewoon een Google voor je en vond dit - DelinvFile Ziet er goed uit maar kan er niet voor instaan.

Edit - Waarschuwing, net gezien het bovenstaande is het maar een proefwerk - Misschien niet zo goed als ik eerst dacht!