Показать полную графическую версию : Проблема и непонятка с длиной имени файла.
В общем, уже не первый раз сталкиваюсь с этой проблемой: в процессе бэкапа данных с компа, мне выдается сообщение об ошибке, что типа встретилось слишком длинное имя файла, причем эта проблема может остаться даже если я копирую этот файл на другой диск по гораздо более короткому пути. В чем собственно проблема? Почему винда позволяет создавать файлы со слишком длинным именем (включая путь к ним), которые потом не позволяет копировать/перемещать? Эта проблема касается не только Win7, но и Win10... Причем эта проблема какая-то плавающая, по тому, что в процессе текущей работы я успешно скопировал одну папку в корень другого диска (при этом была уменьшена длина пути в имени файла), а при попытке перенести ее на другой диск (тоже в корень, так что длина имен файлов там измениться не должна) возникла сабжевая проблема...
Grabber2006
24-02-2024, 21:40
https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
Коротко - раньше было 255 символов, сейчас можно больше. Можете сделать указанные настройки для отключения ограничения по длине (до 32 767 символов), но тогда потеряется совместимость с ОС, в которых это ограничение есть.
Статью можно прочитать с помощью переводчика Яндекс (https://translated.turbopages.org/proxy_u/en-ru.ru.9e980e5f-65da37ed-2dbc6844-74722d776562/https/learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry).
Oleg_SK, и как оно бесит, когда ты говоришь скопировать 100500гиг с одного места в другое, точно уверен, что всё влезет, права есть и накопители живые, приходишь через N-цать часов в полной уверенности, что уже по-любому докопировалось - а эта .ть висит на первом гигабайте с cабжевой ошибкой. Причем даже ТоталКомандир на ней останавливается, благо можно сказать продолжить... но нельзя заранее ему указать, что при такой ошибке тоже продолжать - в опциях копирования ничего нет за "сохранить всю длину и продолжить"
как оно бесит, когда ты говоришь скопировать 100500гиг с одного места в другое, точно уверен, что всё влезет, права есть и накопители живые, приходишь через N-цать часов в полной уверенности, что уже по-любому докопировалось - а эта .ть висит на первом гигабайте с cабжевой ошибкой. »
помимо включения поддержки длинных имен в ОС, необходимо, чтобы ещё и сами программы поддерживали эту опцию... а вот тут (сюрприз!), проводник Windows - не поддерживает, поэтому забыть про него и использовать какой-нибудь другой файловый менеджер... :)
Причем даже ТоталКомандир на ней останавливается, благо можно сказать продолжить... но нельзя заранее ему указать »
А вот это можно побороть, примерно так:
wincmd.ini
LongNameCopy=0
Если во время файловой операции полный путь к целевому объекту оказывается длиннее 259 символов, выдавать предупреждение:
0 = всегда;
1 = никогда;
2 = если путь к исходному объекту был короче 259 символов;
3 = полностью запретить создание файлов/каталогов с длинными путями.
причем Total Commander-у плевать на ключ реестра с поддержкой длинных имен... если не ошибаюсь.
с помощью переводчика Яндекс. »
необязательно Яндекс, можно использовать такую ссылку:
https://learn.microsoft.com/ru-ru/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
Использование ТоталКомандир 11.02 решает сабжевую проблему.
А вот это можно побороть, примерно так:
wincmd.ini
Цитата:
LongNameCopy=0
Если во время файловой операции полный путь к целевому объекту оказывается длиннее 259 символов, выдавать предупреждение:
0 = всегда;
1 = никогда;
2 = если путь к исходному объекту был короче 259 символов;
3 = полностью запретить создание файлов/каталогов с длинными путями. »
Открыл соответствующий файл и не нашел там параметра LongNameCopy и в какую секцию его добавлять - не ясно.
Причем даже ТоталКомандир на ней останавливается, благо можно сказать продолжить... но нельзя заранее ему указать, что при такой ошибке тоже продолжать - в опциях копирования ничего нет за "сохранить всю длину и продолжить" »
Использованная мной версия ТоталКомандира, когда встречает при копировании слишком длинное имя файла, выдает диалоговое окно с сообщением о данной ситуации и несколькими вариантами возможных действий, среди которых есть возможность указать ему, что если дальше по ходу дела появятся такие же файлы, то просто копировать их все...:) Только вот незадача, - ТоталКомандир не может удалить файлы со слишком длинным именем. Интересно, можно ли как-то заставить его удалять и перемещать такие файлы, а не просто копировать?
Использованная мной версия ТоталКомандира, когда встречает при копировании слишком длинное имя файла, выдает диалоговое окно с сообщением о данной ситуации и несколькими вариантами возможных действий, среди которых есть возможность указать ему, что если дальше по ходу дела появятся такие же файлы, то просто копировать их все »
так это не решение, а его реакция. Мой также делает, но я указал ситуацию, которую эта реакция не решит.
>
ТоталКомандир не может удалить файлы со слишком длинным именем »
проверю, вроде удалять умел.
>
Открыл соответствующий файл и не нашел там параметра LongNameCopy и в какую секцию его добавлять - не ясно. »
его там нет. Создать надо, в разделе [Configuration]
>
Использование ТоталКомандир 11.02 решает сабжевую проблему. »
не уверен. Скорее всего, ты используешь вариант с уже прописанным параметром с соотв. значением
Update - проверено:
Использование ТоталКомандир 11.02 решает сабжевую проблему. »
не решает. Чистый 11.03 реагирует аналогично 10-му.
ТоталКомандир не может удалить файлы со слишком длинным именем »
удаляет, как я и говорил - без проблем
помещение указанного параметра со значением =1 проблему для TC решает.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.