Как выполнить резервное копирование папок проекта на локальный рабочий стол, если путь превышает 255 символов? - PullRequest
1 голос
/ 24 октября 2008

Например, если я храню некоторые файлы на сетевом сервере, который находится во многих иерархических папках.

Тогда я хочу сделать резервную копию. Но я всегда сталкиваюсь с проблемой, потому что путь к файлу больше 255?

Как я могу решить эту проблему или обойти ее?

Ответы [ 4 ]

1 голос
/ 24 октября 2008

Предисловие: Я предполагаю, что ОС компьютера, на который вы хотите скопировать файлы, немного напоминает Windows.

Первая часть работы Марка Бесси является несколько правильной, однако даже в современных версиях окон с современными файловыми системами (например, NTFS) вы все равно можете столкнуться с проблемами.

Я подозреваю, что ограничение, с которым вы сталкиваетесь, связано с MAX_PATH, который является предопределенным ограничением на длину пути, который допускают многие API в Windows.

Вы можете попробовать использовать Robocopy для создания резервной копии, поскольку она может создавать пути длиннее, чем ограничение MAX_PATH. Однако большинство приложений не смогут получить доступ к этим файлам.

Тарирование или архивирование файлов может быть хорошим планом, но маловероятно, что вы сможете разархивировать или распаковать их на компьютер с Windows.

0 голосов
/ 24 октября 2008

Вы видите ограничение MAX_PATH в Win32 (MAX_PATH - 260).

В API есть "экранированные символы", позволяющие использовать больший предел NT - 32767 символов (предваряющий \\? \ К пути), которые, однако, работают только с некоторыми из API. Файлы, созданные таким образом, обычно запутывают другие программы, которые ожидают, что все пути помещаются в буферы размера MAX_PATH.

Способ обойти это (для резервного копирования / восстановления) состоит в том, чтобы найти программу, которая может создавать резервные копии (и восстанавливать!) Файлов с более длинными путями (либо всегда используя API «escape-коды», либо базовый API-интерфейс NT). Другим вариантом является резервное копирование / восстановление с другой операционной системой.

0 голосов
/ 24 октября 2008

Какая ОС, какой протокол?

Все, что я вижу, это: CoreFSIF с ограничением в 256 символов.

0 голосов
/ 24 октября 2008

Может быть, обновление до операционной системы, которая была обновлена ​​в последнее десятилетие или около того? Если серьезно, то - какую ОС и файловую систему вы используете? Даже FAT32 поддерживает длинные пути и имена файлов, хотя любой отдельный компонент пути ограничен 255 символами.

Если у вас есть каталоги с более чем 255 символами в названии, это проблематично (и немного странно). Чтобы обойти эту проблему, можно использовать утилиту архивирования (tar или zip), запущенную на сервере, а затем отправить архив на настольный компьютер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...