PDA

Показать полную графическую версию : Копирование папок


Vasosel
18-08-2006, 11:10
Давно бьюсь с проблемой:

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

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

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

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

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

Butunin Klim
18-08-2006, 11:23
В архив её и потом копируй

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

amel27
18-08-2006, 12:36
Vasosel
Если не отключена поддержка 8.3 то можно попробовать батником (сам не пробывал), пример LCOPY.CMD:
@echo off
XCOPY %~s1 %~s2\ /S /Yвызов:
LCOPY "Папка которую копируем" "Папка куда копируем"подстановка %~s1 заменяет длинное имя (1-й параметр) на короткое в формате 8.3

Vasosel
18-08-2006, 18:59
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
Vasosel
не спорю - это не решение, но позволяет сократить путь до корневых каталогов (%~s1, %~s2), все имена ВНУТРИ этих каталогов остаются длинными... Естественно, что %~s2 должен уже существовать, иначе он будет создан с коротким именем.

касаемо администрирования глубоко-вложенных каталогов попробуй NTFS Links (http://www.totalcmd.net/plugring/ntfslinks.html) - плагин к TotalCmd, который позволяет быстро создавать и удалять линки на вложенные каталоги, имхо гораздо удобней SUBST

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

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

Butunin Klim
21-08-2006, 14:12
Killcopy (http://www.killprog.com/) попробуй

Vasosel
22-08-2006, 17:03
Butunin Klim

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

monkkey
23-08-2006, 10:30
Похожая проблема (http://forum.windowsfaq.ru/showthread.php?t=57858), только с плачевными последствиями. Выхода не нашел, кроме переустановки ОС на сервере, которая ДОПУСКАЕТ копирование, но, видимо, вследствие переполнения буфера ведет к перезагрузке сервера.




© OSzone.net 2001-2012