Копирование файлов с длинным именем пути

Обсуждение сетевых операционных систем и их применения (Windows, Linux, FreeBSD, Novell и т.д.)

Модератор: Модераторы

Новый участник
Сообщения: 30
Зарегистрирован: 13 фев 2004, 16:10
Откуда: Иваново

Сообщение Дрын » 10 янв 2008, 17:14

Прошу помочь решить проблему:
на сервере в папках отделов лежат файлы. Уровень вложения файлов очень большой, тем более все имена по русски (общая длина пути больше 260 знаков). При попытке переноса файлов на другой сервер выдает ошибку "Файл не найден". Файлы не заблокированы, доступ полный и на "шару" и по "секьюрити". Сбоев по диску сервера нет.
Какое средство посоветуете для решения проблемы?

Администратор
Сообщения: 3444
Зарегистрирован: 19 дек 2003, 13:36
Откуда: Москва

Сообщение domovoy » 10 янв 2008, 20:26

попробуй использовать конольную утилиту типа FAR или командную строку (xcopy) указав пути как 8+3 (C:\Program Files = С:\Progra~1)
Правильно заданный вопрос - это уже половина ответа.

Новый участник
Сообщения: 30
Зарегистрирован: 13 фев 2004, 16:10
Откуда: Иваново

Сообщение Дрын » 10 янв 2008, 20:54

Цитата (domovoy @ 10.01.2008 - 19:26)
попробуй использовать конольную утилиту типа FAR или командную строку (xcopy) указав пути как 8+3 (C:\Program Files = С:\Progra~1)
[/quote]

Cпасибо за ответ, помня Нортон командир, только Far'ом и пользуюсь. Но к сожалению в первом посте указал на сбои при копировани из проводника именно по той причине, что ФАР не смог скопировать с такой же ошибкой. В фаре даже интереснее получается. До конкретного файла, по длинному пути расположения, с его (ФАРа) помощью дойти можно, но потом даже на уровень вверх подняться нельзя, пишет ошибку "Путь .. не найден". Пробовал Total Comander - анналогично :(

xcopy выдает ошибку еще интереснее "Invalid number of parameters".

Вот пример строки:
xcopy "\\server\soa\???????????\??????????_???????\???????? ???????\??????_?????\100 ПРОЦЕНТНОЕ ВЫПОЛНЕНИЕ_с отправочными письмами\Технич_Спецификац_Задание_инофирмам на архитектурно-строительные изделия\Исходные\Спецификации.Вспомогательные здания\Электролизная\""190_ЗАДАНИЕ на ПОСТАВКУ.doc" c:\

Прошу прощения за знаки вопросов в путях, это я скрыл реальные названия папок, - если что они по русски.

Видимо тут ошибка в другом :(
Администратор
Сообщения: 613
Зарегистрирован: 25 окт 2004, 06:06
Откуда: Новосибирск

Сообщение sea » 11 янв 2008, 06:47

Нужно сократить путь до файла, расшарив папку в пути.
Например, в вышеприведенном примере папку soa.
И путь будет уже "x:\???????????\??????????_???????\???????? ???????\??????_?????\100 ПРОЦЕНТНОЕ ВЫПОЛНЕНИЕ_с отправочными письмами\Технич_Спецификац_Задание_инофирмам на архитектурно-строительные изделия\Исходные\Спецификации.Вспомогательные здания\Электролизная\190_ЗАДАНИЕ на ПОСТАВКУ.doc"
Не хватит этого - расшарить папку еще глубже.
Правильно настроенный бэкап значительно сокращает трафик форумов.

Новый участник
Сообщения: 30
Зарегистрирован: 13 фев 2004, 16:10
Откуда: Иваново

Сообщение Дрын » 11 янв 2008, 09:27

Спасибо за ответ, но проблема не в том как на клиентской машине представить данные файлы, а на самом сервере их не скопировать в более короткий путь. Сама операционка не может попасть в такие каталоги. В ФАРе на сервере ошибка "Путь не найден".
В проводнике - "Can't access this folder. Path is too long.".
Я удивлен как она (операционка) допустила создать такие каталоги с содержимым вообще!

Администратор
Сообщения: 613
Зарегистрирован: 25 окт 2004, 06:06
Откуда: Новосибирск

Сообщение sea » 11 янв 2008, 09:53

Дрын
Цитата
а с самого сервера их скопировать
[/quote]

Блин. Так и скопировать! :D
Цитата
Я удивлен как она (операционка) допустила создать такие каталоги с содержимым вообще!
[/quote]

Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам.
Более развернутый ответ:
Цитата
Ранние версии службы Robocopy (1.95 и ниже) не поддерживают длинные пути. Версия XP010, входящие в наборы ресурсов систем Windows 2003 и XP, по умолчанию поддерживает копирование путей, длина которых больше 256 символов. Если вы хотите, чтобы служба Robocopy XP010 отказывалась работать с файлами и папками, превышающими этот предел, используйте переключатель /256, который не позволяет копировать эти файлы и папки. Также он будет прописывать ошибки в журнал операции. Если вы включили режим отказа, не забудьте про использование переключателей /R:1 (число повторных попыток) и /W:1 (количество секунд перед следующей попыткой). Если вы не понимаете, зачем вам может понадобиться режим отказа службы Robocopy, вспомните, что огромное количество приложений не может работать с файлами с длиной пути более 256 символов. Запуск команды Robocopy с переключателем /256 позволит вам обнаружить проблемные области и, возможно, заставит владельцев информации сократить пути, перед тем как вы начнете перемещение файлов.

Еще одной хитростью, которая может помочь вам при работе с длинными путями в ходе операции копирования, является назначение сетевых логических дисков на нижних уровнях структур каталогов в новой и старой областях данных. Вы можете использовать данную технику для сокращения эффективной длины пути. Когда вы копируете данные из папки \\ServerA\Share1\mydata\mylongfilepathdata, вы используете 42 символа только для того, чтобы добраться до базовой папки, не обращаясь к подкаталогам и именам файлов. Если вы для данной папки назначите сетевой диск и используете логическое имя диска в коде службы Robocopy, вы сможете сократить путь на 40 символов.
[/quote]

Взято с http://www.osp.ru
Правильно настроенный бэкап значительно сокращает трафик форумов.

Новый участник
Сообщения: 30
Зарегистрирован: 13 фев 2004, 16:10
Откуда: Иваново

Сообщение Дрын » 11 янв 2008, 12:35

2sea: Спасибо за совет. Проблема решена.

Новый участник
Сообщения: 19
Зарегистрирован: 26 сен 2005, 18:53

Сообщение bonis » 23 янв 2008, 16:08

Прошу прощения что возобновляю тему.
Как быть если такие фалы появляются в перемещаемых профилях и после перезагрузки профиль не подгружается с сервера.

Четкой идеи борьбы пока не родилось.
Смутные идеи проверять при логофе наличие таких файлов и бросать их в треш для дальнейших разборок.

Может у кого есть идеи или уже готовое решение?

Заранее спасибо.

Администратор
Сообщения: 3444
Зарегистрирован: 19 дек 2003, 13:36
Откуда: Москва

Сообщение domovoy » 24 янв 2008, 13:30

Если пользователей не много то может проще провести ликбез, что бы не создавали такие пути.
Правильно заданный вопрос - это уже половина ответа.

Новый участник
Сообщения: 19
Зарегистрирован: 26 сен 2005, 18:53

Сообщение bonis » 11 фев 2008, 09:05

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

След.

Вернуться в Сетевые операционные системы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0