Имена файлов слишком длинные, и 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-накопитель, или если сетевой диск позволяет копировать обратно в файловую систему, переместите его в каталог верхнего уровня.

  • Запускать программу как администратора все время
  • Запуск приложения (.EXE) из C #?
  • Какую техническую причину Microsoft дал для Internet Explorer 9 в Windows XP?
  • Каковы потенциальные проблемы безопасности при использовании Windows XP?
  • Создайте пользователя Windows XP из раздела Linux
  • Простой, простой способ создания символических ссылок в Windows?
  • Как изменить представление файла по умолчанию для Windows XP
  • Мое колесо прокрутки мыши не прокручивается
  • Текстовый редактор в виде блокнота с автосохранением
  • Вирус дублировал учетную запись пользователя на XP?
  • Наушники usb только воспроизводят определенный звук
  • Давайте будем гением компьютера.