Nazwy plików są zbyt długie, a system Windows nie może ich otworzyć

12

Na dysku sieciowym jest kilka plików na dość głębokiej ścieżce, a katalogi w większości mają długie nazwy. Myślę, że zostały one pierwotnie utworzone, gdy ktoś skopiował i wkleił katalog główny dla tej grupy plików ze swojej lokalnej stacji roboczej na udostępniony dysk sieciowy. Wyobrażam sobie, że na lokalnej stacji roboczej nie było problemu z otwarciem pliku, ale teraz, gdy znajdują się na dłuższej ścieżce w sieci, system Windows nie może ich otworzyć po dwukrotnym kliknięciu. Próbowałem również skopiować pliki i zmienić ich nazwę na nieco krótszą, ale Windows nie jest w stanie tego zrobić.

TL; DR

pliki ze czyjejś stacji roboczej na (hipotetycznej) ścieżce takiej jak ta:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

zostały teraz skopiowane i wklejone do sieci w następujący sposób:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

Ścieżka jest teraz zbyt długa, aby poradzić sobie z nią.

Wszelkie wskazówki, jak mogę odczytać te pliki?

FrustratedWithFormsDesigner
źródło
Dobrze ! Spójrz na superuser.com/questions/257472/…
bZezzz
@bZezzz: Wygląda na to, że działałoby to na zasadzie plik po pliku, ale szukam sposobu, aby cała ich dostępność była dostępna jednocześnie. Kopiowanie na lokalne stacje robocze byłoby OK, ale długie nazwy plików muszą zostać zachowane (zapewniają one bardzo specyficzny kontekst dla zawartości pliku). Ponadto wielu użytkowników nie jest wystarczająco technicznych, aby rozpocząć otwieranie plików z wiersza polecenia. Twoja sugestia może zadziałać dla mnie i jednej innej osoby.
FrustratedWithFormsDesigner

Odpowiedzi:

7

Spróbuj zastąpić ścieżkę SUBST.EXE. Pochodzi z systemem Windows:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

To, co chcesz zrobić, to zastąpić jeden z folderów w łańcuchu literą dysku:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

Teraz folder LongSubdirectoryName1 jest dostępny na dysku X:. Po zakończeniu możesz usunąć swoje zastąpienie za pomocąsubst X: /D

Jeśli potrzebujesz tego cały czas, dodaj go do skryptu logowania.

Innym podejściem byłoby zmapowanie dysku w dalszej części łańcucha, skądkolwiek jest mapowane Q:

shufler
źródło
2
Ostatnio często napotykałem ten problem i korzystałem z metody SUBST. W tym celu znalazłem narzędzie Visual Subst dostępne na stronie ntwind.com/software/utilities/visual-subst.html jako nieocenione.
yosh m
6

Musisz zmienić nazwy katalogów na ścieżce, dopóki nazwa nie będzie wystarczająco krótka, aby system operacyjny mógł uzyskać do niej dostęp.

Przejdź do pierwszego folderu, którego nazwę możesz zmodyfikować i zmień nazwę na jedną literę, a następnie wykonaj to samo dla każdego kolejnego folderu, aż dojdziesz do niezbędnego pliku.

Jeśli chodzi o konieczność zachowania struktury: istnieją ograniczenia, w których musimy pracować w systemach operacyjnych, i rutynowe działanie poza tymi parametrami nie jest dobre. Każde szybkie rozwiązanie będzie teraz łatką, którą trzeba będzie ponownie uruchomić w przyszłości. Prawdziwe rozwiązanie będzie polegało na reorganizacji struktury katalogów w taki sposób, że ten wyjątkowo długi problem ze ścieżką / nazwą pliku nie jest już potrzebny.

music2myear
źródło
256 znaków.
bZezzz
Nie, muszą używać programu, który NIE jest Eksploratorem Windows, ponieważ Eksplorator Windows nie zna specyfikacji systemu plików i leniwie wybiera trzymanie się najmniej wspólnego mianownika, uniemożliwiając na przykład po prostu skopiowanie istniejącego katalogu głównego jednego dysku do katalogu głównego innego identycznego dysku (pod względem pojemności, formatu itp.) bez napotkania błędów ŚCIEŻKA ZA DUŻO.
Triynko
0

EDYCJA: Początkowo sugerowałem użycie robocopy, ale oczywiście jest to XP i nie ma go wstępnie zainstalowanego.

W żaden sposób nie będziesz w stanie „dać każdemu tego, czego chce”. Jeśli ścieżka pliku jest za długa, nie będziesz w stanie wykonywać na niej żadnych operacji na plikach. Widzę to, masz kilka opcji:

  1. Postępuj zgodnie z instrukcjami innych postów i zmieniaj nazwy katalogów, aż będą krótkie. Zaletą komputerów jest to, że możesz napisać skrypt, który nie tylko zrobi to za Ciebie, ale także będzie śledzić oryginalne nazwy. Nawet w przypadku skryptu jest to trochę czasochłonne.

  2. Zdobądź Linux LiveCD. Włóż go do komputera i uruchom z tego dysku CD. Przejdź do dysku Windows, który zostanie automatycznie zamontowany jako osobny system plików. Pobierz wszystkie potrzebne pliki i umieść je w nowym folderze na pulpicie. Spakuj ten folder i umieść go na zewnętrznym dysku twardym lub pamięci USB lub jeśli dysk sieciowy umożliwia kopiowanie z powrotem do systemu plików, przenieś go do katalogu najwyższego poziomu.

wodny
źródło
Nie mam zainstalowanej robocopy i nie jestem pewien, czy mam dostęp do jej instalacji (jest to komputer służbowy). Ponadto, dla każdego pliku brzmi to dużo pracy. Mój przykład został uproszczony: w rzeczywistości istnieje kilka katalogów na kilku poziomach zbyt głęboko, z których każdy zawiera pliki, które są obecnie niedostępne z powodu zbyt długich problemów ze ścieżką. Naprawdę nie muszę robić tego dla wszystkich plików, które wszyscy chcą.
FrustratedWithFormsDesigner