Как в windows копировать файлы с длинными именами
Question
Задача «простая» — скопировать каталог с несколькими сотнями тысяч вложенных объектов (каталогов и файлов) с сохранением прав доступа. Проблема в том что многие каталоги имеют очень длинные имена (находил до 500 символов).
Пытался читать про это на английском, но так и не понял до конца:
Файловая система (NTFS) поддерживает пути до 32767 символов юникода.
ОС, начиная аж с Windows NT, позволяют поддерживают такие пути с использованием Unicode API.
Почему же до сих пор нет файловых менеджеров умеющих работать с такими путями ? (Или есть?)
Даже explorer Windows Server 2008 спотыкается об ограничение в 260 символов !
Можно всё таки как-то работать с такими путями ?
Answers
Когда столкнулся с таким, то догадался использовать команду subst (subst /?)
Подключаешь папку поглубже как диск и тебе снова даётся 260 символов от этого диска 🙂
А вообще эта проблема, как оказалось, классифицируется как «won’t fix». Почему так, написано здесь.
P.S. Программка от MS умеет с длинными путями работать ещё, robocopy называется. Скачать тут. GUI к ней качается отдельно, если нужен.
All replies
Когда столкнулся с таким, то догадался использовать команду subst (subst /?)
Подключаешь папку поглубже как диск и тебе снова даётся 260 символов от этого диска 🙂
А вообще эта проблема, как оказалось, классифицируется как «won’t fix». Почему так, написано здесь.
P.S. Программка от MS умеет с длинными путями работать ещё, robocopy называется. Скачать тут. GUI к ней качается отдельно, если нужен.
Ice1374 спасибо за ответ !
Robocopy это похоже именно то что нужно!
Указанную Вами статью я уже читал, но так и не понял почему оно «won’t fix».
Да и само существование такой программы как robocopy говорит о том что фикс всё таки возможен.
Насколько я понял, причин несколько и все они лежат очень глубоко, чтобы их исправлять.
В статье идёт только описание проблем, почему платформа .NET не может работать с длинными путями. Ответ однозначен: потому что платформа .NET находится в сильной зависимости от WinAPI, причём ANSI, а не Unicode. Отделяться от WinAPI очень муторно, потому что надо перелопатить и почти продублировать тонны кода.
При этом, есть возможность обратиться к Unicode WinAPI, но при этом почему-то отключаются проверки строк на наличие «опасных» символов, потенциально могущих привести к бреши в безопасности. Так как платформа .NET доверяет инфе, полученной от WinAPI, то тоже не считает нужным делать такие проверки.
Обходные пути конечно есть, но общего решения не выработано.
Использование ANSI обусловлено желанием обеспечить совместимость существующих приложений. Почему в ANSI WinAPI ограничение на 256 символов — это тайна, покрытая мраком 🙂 Вроде, для обеспечения совместимости с 16-битными приложениями.
Ответ от MS намного проще, но вводит в размышления. Ограничение есть потому, что в WinAPI есть переменная MAX_PATH, равная 260 символам. Большинство функций завязано на этой переменной и поэтому её не изменить 🙂
Да и в конце концов, ситуация пока возникает не так часто, чтобы над ней ломать голову.
Поэтому лучше избегать использования таких длинных путей.
Как копировать папки с файлами на виндовс с 7 с более 260 знаками?
Имеется большое количество папок с очень длинными названиями, которые нужно скопировать на диск/флешку. При попытке копирования файла или папки всплывает окошко с надписью «Не удается скопировать файл /папку. Слишком длинное имя / целевой путь конечного файла». Тотал коммандер не помогает. знаю что в виндовс 10 этот вопрос решен, но речь идет о семерке
Единственный вариант в данном случае — сократить длину названий, можно при помощи того же Тотал Командера при помощи групповым переименованием, но будьте внимательны.
Подскажите горячие клавиши на клавиатуре для копирования и вставки объекта?
Здравствуйте, для того что бы скопировать объект, выделите его и нажмите одновременно две кнопки: «Ctrl»(внизу слева)+»C».
Так же для того что бы вставить объект «Ctrl»+»V»
7 2 · Хороший ответ
Как объединить несколько файлов jpg в один файл pdf?
Объединить несколько jpg-файлов в один pdf-файл можно одним из следующих способов:
- Воспользоваться бесплатными онлайн-конвекторами, например, «pdf_io» или «pdf-doc»;
- Воспользоваться программой «PhotoShop», где после объединения файлов следует сохранить все в один итоговый pdf-файл.
3 4 · Хороший ответ
Как найти скрытые папки на Windows 7?
Для того чтобы отображались скрытые папки надо выполнить несколько простых действий:
1. открыть любую папку;
2. во вкладке «Упорядочить» выбрать пункт «Параметры папок и поиска»;
3. в появившемся окне перейти на вкладку «Вид» и в разделе «Дополнительные параметры», в самом низу списка выбрать «Показывать скрытые файлы, папки и диски»;
4. сохранить изменения, нажав «Ок».
После этого все скрытые папки отобразятся, их значок будет отличаться от обычного небольшой прозрачностью.
7 3 · Хороший ответ
«Файл слишком велик для конечной файловой системы» — откуда такая ошибка?
Если вы имеете в виду ошибку, которая возникает у вас при попытке записать файл на флешку, на которой куча места, а она вам этого сделать не дает, отображаю эту ошибку, то необходимо флешку отформатировать. Имейте в виду, что при форматировании флеш накопителя вам нужно сохранить все данные, которые на нем храняться. Так как форматирование приводит к удалению всех данных. Причина ошибки следующая: почти все флешки используют файловую систему FAT32, а эта система не поддерживает файлы которые весят больше 4 гигабайт. Поэтому решить проблему можно, отформатировать флешку в другую файловую систему (NFTS). Откройте «Мой компьютер», выберите флешку (которую вы уже вставили в разъем и она загрузилась), правой кнопки мыши кликните по значку флешки, в открывшемся меню выберите пункт «Форматировать», в открывшемся окне вы увидите, что по умолчанию стоит файловая система «FAT32», нажмите на меню файловой системы и выберите систему NFTS. Далее нажмите «Начать», подтвердите удаление всех файлов. Флешка отформатируется, и подобной ошибки вы больше не увидите.
Как в windows копировать файлы с длинными именами
Конфигурация PC:
CPU: Intel i7-9800X
MB: Asus Workstation X299 SAGE
ОЗУ: Samsung 128 ГБ 2400 МГц
HDD/SSD: Intel Optane 905P 960 ГБ — система Intel Optane 900P 280 ГБ x2 (RAID 0 Vroc) — скретч | Intel Optane P4800X 750 ГБ — файлопомойка | Intel X-25-E 32 ГБ x4 (RAID 0) — кеш | Samsung 960 PRO 512 ГБ — проекты | Intel P3600 1.6 ТБ (3шт) — проекты | Intel DC S4600 1.9 TБ (4шт) — проекты | Intel P4500 8 ТБ — хранилище Toshiba HDD 14 TB
Video: AMD Radeon PRO WX 4100 + Nvidia Quadro p600
Sound: Chord Mojo + Creative AE-5
АC: Audio-Technica ATH-AD2000X + Audio-Technica AT2020 USBi + Creative Woof 3
PCI: TP-Link Archer T6E
DVD/CD: Asus USB
Корпус: FD Define S2 VISION
БП: Seasonic Prime Titanium Ultra 1000W
Cooler: Noctua U12S + NB Bionic eLoop B12-1 (x2) NB Bionic eLoop B14-2(x4)
Монитор: Eizo ColorEdge CG319X
OS: Win 10 PRO ENG
Keyboard: Apple Magic keyboard 2
Mouse\other: Apple Magic Trackpad 2 | Wacom Intuos Pro S 2019 | Griffin Powermate
В общем окончательно достала ситуация.
Бывает, что при работе с видео приходится очень часто редактировать какой-то фрагмент, там подрезать, здесь подтянуть. Как пример, при работе с аудио файлом. Аудишн начинаешь делать так «название аудио файла», берет его и делает копию «название аудио файла_Audio Extracted», далее если мне нужно еще раз через какое-то время еще провести правку, он берет и еще добавляет Audio Extracted в итоге, файл может иметь такой характер названия, что содержать раз 10 этот Audio Extracted
все бы ничего, только когда проект закончен, я его переношу с ССД рабочего (не системного) на Хард, под бекап.
И часть файлов невозможно перенести, т.к выскакивает сообщение мол длина файла не позволяет.
Премьер про не умеет сам распознавать изменения, поэтому будет требовать именно этот файл именно с этими дикими длинными названиями.
Вопрос. Можно ли как-то в самой винде убрать это? Каким-то боком создать файл с длинным именем ума хватает у винда при этом она же при копирования считает всю длину файла от диска, а скопировать его становится невозможно.
Причем я не могу регулировать вложенность папок, где Премьер создает их и раскладывает их при редактировании. как пример — E:\Adobe Premiere\Media Cache\Peak Files эти пути неизменные. и это еще я укорачиваю, т.к иногда проект сразу на диске, обычно я еще создаю папку с названием проекта, где уже Премьер начинает сап плодить папки и пути.