Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Копирование папок (http://forum.oszone.net/showthread.php?t=70024)

Vasosel 18-08-2006 11:10 473938

Копирование папок
 
Давно бьюсь с проблемой:

Есть папка с документами, там их огромное количество и очень длинные имена папок и файлов.

Когда длина полного имени файла превышает 260 символов (или что-то вроде того), файлы перестают открываться некоторыми программами, копироваться и т.п.

С помощью команды subst, или подключая сетевой диск, можно сократить путь к файлу, а следовательно и его полное имя. Тогда всё работает.

В чем проблема? В NTFS вроде бы максимальная длина имени файла намного больше.

И ещё вопрос: как такую папку скопировать? xcopy выдает ошибку "недостаточно памяти", средствами windows тоже копирование не проходит... Может есть какой-то способ?

Butunin Klim 18-08-2006 11:23 473941

В архив её и потом копируй

Vasosel 18-08-2006 11:28 473942

А без архивации никак? Я думал, может это можно исправить на уровне операционной системы? Откуда взялось такое ограничение на длину имен файлов?

amel27 18-08-2006 12:36 473964

Vasosel
Если не отключена поддержка 8.3 то можно попробовать батником (сам не пробЫвал), пример LCOPY.CMD:
Код:

@echo off
XCOPY %~s1 %~s2\ /S /Y

вызов:
Код:

LCOPY "Папка которую копируем" "Папка куда копируем"
подстановка %~s1 заменяет длинное имя (1-й параметр) на короткое в формате 8.3

Vasosel 18-08-2006 18:59 474170

amel27
угу... запускаем lcopy c:\long-long-long-name \\server\share\other-long-long-long-name
выполняется команда xcopy c:\long-lo~1 \\server\share\other-~1 (или что-то вроде того)

заходим на \\server\share, видим папку other-~1 ??

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

Кстати во-первых, у xcopy есть ключ, /n включающий использование коротких имен при копировании, во-вторых, при копировании файлов с длинными именами выкидывает ошибку "недостаточно памяти" (независимо от ключа /c)

amel27 19-08-2006 12:15 474373

Vasosel
не спорю - это не решение, но позволяет сократить путь до корневых каталогов (%~s1, %~s2), все имена ВНУТРИ этих каталогов остаются длинными... Естественно, что %~s2 должен уже существовать, иначе он будет создан с коротким именем.

касаемо администрирования глубоко-вложенных каталогов попробуй NTFS Links - плагин к TotalCmd, который позволяет быстро создавать и удалять линки на вложенные каталоги, имхо гораздо удобней SUBST

Vasosel 21-08-2006 14:04 475077

Я умею создавать линки, но это тоже не выход.... Необходимо скопировать ВСЮ структуру папок, а не мучаться с ней кусками.

Может кто знает, есть какой-нить софт, который работает с длинными именами более корректно?

Butunin Klim 21-08-2006 14:12 475084

Killcopy попробуй

Vasosel 22-08-2006 17:03 475667

Butunin Klim

Не помогает. Пришел к выводу, что надо пользователей карать за длинные имена.

monkkey 23-08-2006 10:30 475845

Похожая проблема, только с плачевными последствиями. Выхода не нашел, кроме переустановки ОС на сервере, которая ДОПУСКАЕТ копирование, но, видимо, вследствие переполнения буфера ведет к перезагрузке сервера.


Время: 13:52.

Время: 13:52.
© OSzone.net 2001-