![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вопрос комьпьютерного ламера: как устроено ограничение на размеры имени файлов в Windows?
Периодически сталкиваюсь с проблемой, когда система отказывается копировать файлы, ссылаясь на слишком длинное название. При этом она прекрасно их сохраняет с этими названиями, и так же прекрасно перемещает между директориями. А вот копировать - отказывается.
Приходится идти кривым путем, то есть вместо простого копирования файла из директории А в директорию Б - открывать файл и сохранять его заново в нужной директории.
Как такое может быть? Может быть, где-то выставлено специальное ограничение на длину имени копируемого файла, и можно это ограничение подредактировать, выставив его таким же, как ограничение на длину имени файла при сохранении и перемещении?
Периодически сталкиваюсь с проблемой, когда система отказывается копировать файлы, ссылаясь на слишком длинное название. При этом она прекрасно их сохраняет с этими названиями, и так же прекрасно перемещает между директориями. А вот копировать - отказывается.
Приходится идти кривым путем, то есть вместо простого копирования файла из директории А в директорию Б - открывать файл и сохранять его заново в нужной директории.
Как такое может быть? Может быть, где-то выставлено специальное ограничение на длину имени копируемого файла, и можно это ограничение подредактировать, выставив его таким же, как ограничение на длину имени файла при сохранении и перемещении?
no subject
Date: 2014-04-29 06:16 pm (UTC)no subject
Date: 2014-04-29 06:19 pm (UTC)http://msdn.microsoft.com/en-us/library/aa365247.aspx
no subject
Date: 2014-04-29 06:40 pm (UTC)no subject
Date: 2014-04-29 06:57 pm (UTC)В то же время, есть более новые API, которые поддерживают суммарную длину пути 32,767 символов. Если программа (например, Word) пользуется ими, то она может создать файл, который старые API не могут.
no subject
Date: 2014-04-29 07:08 pm (UTC)no subject
Date: 2014-04-29 07:43 pm (UTC)Для копирования нужно один файл открыть для чтения, второй для записи, и циклом копировать из первого во второй, пока файл не закончится. После этого оба файла надо закрыть.
Для перемещения внутри одного логического диска нужно просто сказать файловой системе откуда и куда переносится файл, и система его перенесёт, не открывая.
Иногда перенос файла требует копирования - например, при перемещении между жестким и сетевым дисками, или при копировании на другой логический диск.
no subject
Date: 2014-04-29 10:11 pm (UTC)no subject
Date: 2014-04-30 06:38 am (UTC)Это более правдоподобно, чем старые API в самом эксплорере.
no subject
Date: 2014-04-30 02:43 pm (UTC)Можно представить себе организацию каталогов, которая могла бы отслеживать образование слишком длинных имён и при перемещении. Но это непросто и небесплатно в смысле производительности.
(Если бы речь шла о Linux VFS layer, была бы не гипотеза, а инфа 100%. В случае Windows, пожалуй, всё-таки гипотеза, но я очень удивлюсь, если она не соответствует действительности).
no subject
Date: 2014-04-29 08:42 pm (UTC)no subject
Date: 2014-04-29 10:31 pm (UTC)no subject
Date: 2014-04-30 05:27 am (UTC)no subject
Date: 2014-04-29 11:43 pm (UTC)no subject
Date: 2014-04-29 10:32 pm (UTC)no subject
Date: 2014-04-29 06:21 pm (UTC)Есть подозрение, что что-то у вас не так просто с объектами копирования.
Например, не находится ли одна из папок, куда или откуда вы копируете, на сетевом диске?
no subject
Date: 2014-04-29 06:40 pm (UTC)no subject
Date: 2014-04-29 11:49 pm (UTC)Offset Size Description
0x40 1 Filename length in characters (L)
0x41 1 Filename namespace
0x42 2L File name in Unicode (not null terminated)
no subject
Date: 2014-04-30 06:38 am (UTC)no subject
Date: 2014-04-29 06:45 pm (UTC)no subject
Date: 2014-04-29 06:53 pm (UTC)no subject
Date: 2014-04-29 07:02 pm (UTC)Если у Вас не "семерка", а более поздняя версия Виндовс, то может быть это - просто глюки неотлаженной ОС. Попробуйте обратиться в техподдержку.
no subject
Date: 2014-04-29 06:52 pm (UTC)no subject
Date: 2014-04-29 06:54 pm (UTC)no subject
Date: 2014-04-29 06:57 pm (UTC)И почему операция перемещения осуществляется (причем всегда осуществляется), а операция копирования - нет?
no subject
Date: 2014-04-29 06:56 pm (UTC)Вы как копируете, кстати -- перетаскиваете между окнами или же командами скопировать/вставить?
no subject
Date: 2014-04-29 07:02 pm (UTC)А файлы чаще всего pdf.
Видимо, вы правы - придется смириться с несовершенством мира :(((
no subject
Date: 2014-04-29 06:57 pm (UTC)точно можно сказать одно - имя не может быть длиннее примерно 32 000 символов, это ограничение внутренних структур системы
no subject
Date: 2014-04-29 07:00 pm (UTC)no subject
Date: 2014-04-29 07:05 pm (UTC)Да, я говорю про виндоуз эксплорер. Перемещение в нем можно делать как чисто мышью (только с зажатой ЛЕВОЙ кнопкой - при зажатой ПРАВОЙ кнопке выскакивает меню, спрашивающее, что именно я хочу делать, перемещать или копировать), так и командами Ctrl-X/Ctrl-V
no subject
Date: 2014-04-29 08:01 pm (UTC)no subject
Date: 2014-04-29 10:14 pm (UTC)Но я, почитавши умных людей, решил поиграть и посмотреть, как оно устроено - и экспериментально обнаружил, что успешность копирования таких файлов может зависеть от общей длины его имени (в смысле path, с именами всех вложенных директорий). То есть файл может копироваться в директорию первого уровня от корневой, но не копироваться в директорию, скажем, третьего или пятого уровня.
Но перемещение срабатывает всегда.
no subject
Date: 2014-04-29 10:33 pm (UTC)total commander на сверхдлинное имя предупредил и скопировал.
в общем, я бы всячески его для юзерских файловых операций рекомендовал. там можно фильтры настраивать, в разные цвета раскрашивать файлы и папки, держать открытыми 10+ табов одновременно, просматривать содержимое файла без открытия. во всем сразу не разберетесь, конечно, но оно стоит для библиотек и более того, способствует правильной ее организации.
и еще - вы наверняка адоб акробатом пдфы открываете, по пять минут? есть такой sumatrapdf для винды броузер, он очень быстрый.
no subject
Date: 2014-04-29 10:49 pm (UTC)А вот акробат pdf открывает и обрабатывает со свистом, никаких проблем.
no subject
Date: 2014-04-30 04:56 am (UTC)