Jak usunąć plik ze ścieżką zbyt długą, aby go usunąć [zduplikować]

203

Pracowałem z pewnym kodem źródłowym do wizji komputerowej, który znalazłem i nie zdawałem sobie sprawy, że tworzy on plik pamięci podręcznej, który ma BARDZO DŁUGĄ nazwę, a teraz nie mogę go usunąć.

Próbowałem zmienić nazwę na krótszą, ale nie mogę nic zrobić z plikiem, próbowałem również ponownie uruchomić komputer i sprawdzić, czy po prostu zniknie.

Komunikat o błędzie mówi:

Zbyt długa ścieżka docelowa.

Nazwy plików byłyby zbyt długie dla folderu docelowego. Możesz skrócić nazwę pliku i spróbować ponownie lub wypróbować lokalizację o krótszej ścieżce.

zrzut ekranu

Jak mogę usunąć pliki w tym przypadku?

Chris
źródło
Czy działałoby to z linii poleceń z delpoleceniem? Coś w stylu del *.cachepowinno usunąć wszystkie pliki .cache w bieżącym katalogu.
Ryan
„Ścieżka \ do \ folderu \ CACHEI ~ System nie mógł znaleźć określonego pliku” powiedział, że dwa razy i są tam 2 pliki, ale nic nie zrobił
Chris
Po zastanowieniu możesz sprawdzić jedno z pozostałych pytań, na które już udzielono odpowiedzi. Ten na przykład.
Ryan
1
Jeśli te dwa pliki są jedynymi, które pozostały w katalogu, być może lepiej będzie usunąć cały katalog. W wierszu polecenia spróbuj rd /s directoryname Spowoduje to usunięcie directorynamewszystkich plików / podkatalogów, więc używaj go ostrożnie :)
bitsmack

Odpowiedzi:

353

Zakładając, że jesteś w systemie Windows:

Zawsze używam subst, aby utworzyć skojarzenie litery dysku z częścią ścieżki.

Następnie przejdź do nowej litery dysku i przejdź do plików o długich nazwach. Teraz powinieneś być w stanie zmienić ich nazwę / usunąć / etc. Powodem tego jest to, że sama ścieżka nie zawiera już> 255 znaków.

Aby utworzyć folder podrzędny

  1. Uruchom wiersz polecenia (nie potrzebujesz uprawnień administratora)
  2. Użyj, cdaby przejść do folderu, do którego chcesz przejść (możesz użyć tabdo autouzupełniania nazw
  3. wpisz, subst j: .aby utworzyć powiązanie z układem napędowym. (zamiast. możesz także wpisać całą ścieżkę)
  4. Teraz w Eksploratorze masz nową literę dysku na tym komputerze . Przejdź do niego i zrób wszystko, co musisz zrobić z plikami .cache.
  5. Wróć do okna cmd i wpisz, subst /d j:aby usunąć dysk lub alternatywnie uruchom ponownie komputer.

EDYCJA: Nauczyłem się sztuczki, która może to trochę skrócić. W oknie Eksploratora, w którym masz problemy, kliknij pasek adresu, aby go wpisać, a następnie wpisz cmdi naciśnij, Enteraby uruchomić wiersz polecenia w tym miejscu, a następnie przejdź do kroku 3. :)

EDYCJA 2: Dobra, tę sztuczkę można jeszcze bardziej rozwinąć. Jeśli jesteś w Eksploratorze po właściwej ścieżce, po prostu wpisz w subst j: .pasku adresu i naciśnij klawisz Enter. Otworzy się okno poleceń, uruchom polecenie i zamknij ponownie, i proszę bardzo, w Eksploratorze pojawia się nowy dysk.

LPChip
źródło
26
robocopy empty_dir base_nested_dir / purge - Po prostu utwórz pusty katalog i powiedz robocopy, aby wyczyścił wszystko w katalogu docelowym, który nie znajduje się w pustym katalogu stackoverflow.com/a/3320317/588759
rofrol
7
Właśnie próbowałem tego i nie mogłem usunąć tego pliku. Używam cygwin z Windows, alternatywnym rozwiązaniem jest usunięcie pliku w ten sposób: rm -R / ścieżka / in / pytanie, o ile żaden inny program nie korzysta z pliku dobrze jest iść
John
1
Miałem problem polegający na tym, że SUBST nie rozpoznał J: jako parametru (nie widział też żadnych dostępnych napędów wirtualnych), więc wspomniana przez Johna opcja cygwin działała dobrze.
Tisch
1
@rofrol, powinieneś zrobić komentarz robocopy: jest to o wiele łatwiejsze niż podejście do nazw katalogów w przypadku wielu katalogów potomnych (takich jak te utworzone w node_modules)
Andy Brown
1
Rozwiązanie Johna działało dla mnie bardzo dobrze, właśnie dodałem -f (parametr force): rm -R -f / pathToDelete
Christophe Keller
67

Twoje pytanie dotyczy sposobu usunięcia pliku, gdy sama nazwa pliku jest zbyt długa. Jeśli ścieżka jest zbyt długa, a nie sama nazwa pliku, możesz łatwo zmienić nazwy folderów, aby skrócić ścieżkę.

Ale aby usunąć plik o nazwie większej niż 255 znaków:

  • Otwórz wiersz polecenia, uruchamiając „CMD.EXE”
  • Przejdź do folderu zawierającego plik
  • Użyj polecenia DIR / X, które wyświetli krótkie nazwy plików.
  • Usuń, używając krótkiej nazwy.

tzn. jeśli plik ma nazwę „verylongfilename.fil”, nazwa skrócona będzie wyświetlana jako „verylo ~ 1.fil” i można ją usunąć, używając tej nazwy.

Należy pamiętać, że chociaż sam system Windows może obsługiwać ścieżki znacznie dłuższe niż 255 znaków, większość GUI - podobnie jak Eksplorator Windows - jest ograniczona przez krótszy limit.

Debra
źródło
16
To lepsza odpowiedź niż zaakceptowana w dniu.
Ben
3
Wybrana odpowiedź jest lepsza, ponieważ tą metodą możesz usunąć całe foldery
mcont
2
ale w Windows 7 wydaje się, że DIR / x nie zmienia tutaj żadnego wyświetlania ... :(
gumuruh 30.04.16
3
Niektóre systemy plików NTFS NIE mają 8,3 odpowiedników. Więc to nie zawsze działa.
Ross Presser
Del / S z CMD pracował dla mnie nawet z dużym nazwiskiem 8
Jeff
4

Googled: usuń długą nazwę pliku Pierwszy wynik

Użyj Unlocker http://www.filehippo.com/download_unlocker/

Nie można usunąć folderu: jest używany przez inną osobę lub program. Nie można usunąć pliku: Odmowa dostępu Wystąpiło naruszenie zasad udostępniania. Plik źródłowy lub docelowy może być w użyciu. Plik jest używany przez inny program lub użytkownika. Upewnij się, że dysk nie jest pełny lub chroniony przed zapisem i że plik nie jest aktualnie używany.

Unlocker może pomóc! Wystarczy kliknąć folder lub plik prawym przyciskiem myszy i wybrać Unlocker. Jeśli folder lub plik jest zablokowany, pojawi się okno szafek. Po prostu kliknij Odblokuj wszystko i gotowe!

Wutnaut
źródło
1
Widziałem to, ale nie wiedziałem, czy odblokowanie jest bezpieczne, więc zignorowałem to, wypróbuję to. EDYCJA: nie działa. działa na innych plikach, ale odblokowanie nie pojawia się w menu rozwijanym
Chris
Z pewnością najprostszy sposób na zrobienie tego, chociaż może to wymagać ponownego uruchomienia komputera. Z Unlockerem nie ma nic złego - używałem go od lat i jest to bardzo przydatne narzędzie. W przypadku pliku lub folderu, którego ścieżka jest zbyt długa, nie znajdzie on żadnego uchwytu blokującego, ale powinien następnie zaoferować opcję Usuń w menu rozwijanym.
Steve Pettifer
1
Działa bezbłędnie - zabawne jest to, że mam zainstalowane to oprogramowanie, ale nie przyszło mi do głowy, aby użyć go w tej sytuacji.
Daniel Sokołowski
Nie działało w przypadku innego folderu, w którym skopiowałem okrągły folder połączenia, ale działało to, zmieniając nazwę każdego folderu poziomu na jedną postać jak przez 1całą drogę, a następnie usuwając go.
Daniel Sokołowski
To była jedyna odpowiedź, która zadziałała dla mnie (używam Windows 10). Dziękuję Ci bardzo!
user26832,
4

Microsoft ma przydatny artykuł z bazy wiedzy na temat usuwania plików, których nie można usunąć . Przyczyna nr 4 ma dla ciebie znaczenie.

Najlepszym rozwiązaniem byłoby prawdopodobnie zamapowanie dysku na folder, w którym znajduje się plik (rozdzielczość nr 3), a następnie przejście przez ten dysk i usunięcie go.

Compro01
źródło
1
Nigdy wcześniej nie zdawałem sobie sprawy, że mogę „mapować dysk sieciowy” na lokalizację na własnym dysku twardym. Tak zrobiłem w Eksploratorze Windows. Po przejściu na dysk mogłem łatwo usunąć folder i zawartość. Ta sama zasada, co rozwiązania konsoli pokazane powyżej, ale jest to szybkie rozwiązanie GUI, które było dla mnie łatwiejsze.
RandomHandle