12

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

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

4 ответа4

7

Попробуйте заменить путь с помощью 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:.

6

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

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

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

1

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

0

РЕДАКТИРОВАТЬ: Первоначально я предложил использовать robocopy, но, конечно, это XP, и он не имеет предустановленной.

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .