Имена файлов слишком длинные, и Windows не может открыть файлы

На сетевом диске есть куча файлов на довольно глубоком пути, а каталоги на большинстве из них имеют длинные имена. Я думаю, что они были созданы, когда кто-то скопировал и вставил корневой каталог для этой группы файлов с их локальной рабочей станции на общий сетевой диск. Я предполагаю, что на локальной рабочей станции не было проблем с открытием файла, но теперь, когда они находятся на более длинном пути в сети, Windows не может открыть их, когда я дважды щелкнул. Я также попытался скопировать файлы и переименовать их в нечто более короткое, но Windows тоже не может этого сделать.

TL; DR

Файлы с чьей-то рабочей станции на (гипотетическом) пути следующим образом:

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

Теперь были скопированы и вставлены в сеть следующим образом:

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

И путь для Windows XP слишком длинный.

Любые советы о том, как я могу читать эти файлы?

Попробуйте заменить путь SUBST.EXE. Он поставляется с 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. 

То, что вы хотите сделать, это заменить одну из папок на цепочку для буквы диска:

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

Теперь папка LongSubdirectoryName1 доступна на диске X :. Когда вы закончите с этим, вы можете удалить свою замену с помощью subst X: /D

Если вам это нужно все время, добавьте его в свой сценарий входа.

Другим подходом было бы отобразить диск дальше по цепочке из любого места, где Q: отображается.

Вам нужно будет переименовать имена каталогов в пути до тех пор, пока имя недостаточно для доступа к ОС.

Я бы переместился в первую папку, имя которой вы можете изменить и переименовать в одну букву, а затем сделать то же для каждой последующей папки, пока не дойдете до нужного файла.

Что касается необходимости сохранения структуры: существуют ограничения, которые мы должны работать в операционных системах, и не рекомендуется регулярно работать за пределами этих параметров. Любое быстрое решение теперь будет только патчем, который нужно будет снова запустить в будущем. Истинное решение будет включать реорганизацию структуры каталогов, так что эта чрезвычайно длинная проблема с именем пути / имени файла больше не требуется.

Префикс пути с \\?\ . Обратите внимание, что это не работает со всеми приложениями.

EDIT: Первоначально я предложил использовать robocopy, но, конечно, это XP, и у него нет предустановленной.

Вы не сможете «дать всем то, что они хотят». Если путь к файлу слишком длинный, вы не сможете делать с ним какие-либо операции с файлами. Как я вижу это, у вас есть несколько вариантов:

  1. Следуйте инструкциям других сообщений и переименуйте каталоги до тех пор, пока они не станут короткими. Хорошая вещь о компьютерах – вы можете написать сценарий, чтобы не только сделать это за вас, но и отслеживать, что такое оригинальные имена. Даже со сценарием это должно быть отнимает много времени.

  2. Получите Linux LiveCD. Поместите его в компьютер и загрузитесь с этого компакт-диска. Перейдите на диск Windows, который будет автоматизирован как отдельная файловая система. Получите все нужные файлы и поместите их в новую папку на рабочем столе. Заблокируйте эту папку и поместите ее на внешний жесткий диск или USB-накопитель, или если сетевой диск позволяет копировать обратно в файловую систему, переместите его в каталог верхнего уровня.

  • Восстановление данных на рабочем жестком диске
  • Безопасно ли переместить системный диск на новый компьютер?
  • Рассчитать разницу во времени в Excel 2003
  • Кнопка мыши и счетчик клавиш для Windows
  • Почему диспетчер загрузки bitsadmin.exe не работает для меня?
  • Как распечатывать метки на письмах с помощью Microsoft Word
  • Как заставить одиночный (только) канал аудио в YouTube / Flash видео играть в обоих (левый / правый) каналы?
  • Как проверить код выхода последней команды в пакетном файле?
  • Какая программа делает этот звук и как я могу заставить его остановиться
  • WinXP - размещение пользовательских каталогов на вторичном разделе?
  • Windows XP Blue-Screens и мгновенно перезагружается при загрузке
  • Interesting Posts

    Окна с двумя мониторами Windows 7 перемещаются, когда экран заблокирован

    Список встроенных переменных MSBuild

    Получено недостаточно сообщений о привилегиях в CMD при входе в систему как администратор

    Переопределение свойства суперclassа с разным типом в Swift

    Есть ли несколько программ для настольных компьютеров для Vista? (Аналогично тому, что включено в GNOME и KDE)

    Связывание мультимедийных клавиш

    В чем разница между «разоблачением» и «публикацией» в Docker?

    Использование команды cd в командной строке Windows не может перейти к D: \

    Java ассоциативный массив

    Есть ли способ отключить поведение «верхнего левого клика в приложении метро» в Windows 8?

    Сплит скрипка с ggplot2

    Как запросить firebase для свойства с определенным значением внутри всех детей

    C ++ Использование метода classа как функции Тип указателя

    Как передать атрибут сеанса как аргумент метода (параметр) с помощью Spring MVC

    Java: получение подстроки из строки, начинающейся после определенного символа

    Давайте будем гением компьютера.