|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2016, 22:26 | #1 |
Пользователь
Регистрация: 19.03.2016
Сообщений: 77
|
Обход ограничения в 255 символов на длину пути к файлу или папке
В теории ограничение на длину имени файла или папки в NTFS составляет 255 символов, но на практике Windows API ограничивает до 244 символов (максимум который мне удалось создать).
В теории ограничение на длину пути к файлу или папке в NTFS составляет 32767 символов, но на практике Windows API ограничивает до 245 символов (максимум который мне удалось создать). Как видно из прикрепленных файлов весь корень зла не в файловой системе а в Windows API. Если ограничение на длину имени файла или папки в Windows API на практике в 244 символа меня вполне устраивает, то ограничение на длину пути к файлу или к папке в Windows API на практике в 245 символов ни меня ни большинсто пользователей никак не устраивает. У меня риторический вопрос к программистам : Можно ли внести самодельные изменения в Windows API после включения "Службы активации Windows" со всеми тремя ее субкомпонентами («Интерфейсы API настройки», «Модель процесса», «Среда .NET Environment») через "Компоненты Windows" в «Программы и компоненты» панели управления ??? Если возможно то как конкретно ??? Если у кого-то есть конкретные предложеня по поводу "службы активации" и самодельной правки "Windows API" прошу писать мне на почту alex-alex@intelservis.com. Убедительная просьба не раздражать предложениями типа "укоротите имена", "юзайте файловые менеджеры" и "юзайте коммандную строку с символами \\?\Путь". Никто юзать ни файловые менеджеры ни коммандную стоку не собирается, только проводник в графическом интерфейсе. Предложения в стиле «укоротите имена» вообще не рассматриваютя, там и так уже все срезано по максимуму. Жду конкретные предложения по сути вопроса на свою почту. |
19.03.2016, 22:34 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Как связана служба активации винды и ваш вопрос про длину пути? Если не нравится ограничания юзайте, не нравившиеся вам, пути с \\?\
|
19.03.2016, 22:50 | #3 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
|
|
19.03.2016, 23:18 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Не юзаете проводник от вин 3.1...
|
20.03.2016, 09:29 | #5 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Цитата:
"Проводник" != "Windows API", то, что проводник чего-то не умеет это не значит, что опреационка этого не может. Далее, в вашем конкретном случае, раз вам обязательно нужно использовать проводник то ваше единственное решение это писать плагин для проводника, правда и это не совсем поможет но может обойти проблему, укорачивая пути на уровне проводника. Последний раз редактировалось waleri; 20.03.2016 в 09:33. |
|
20.03.2016, 09:32 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вообще-то вы не поняли сути проблемы.
Проблема в том, что проводник не умеет работать с а) очень большим количеством вложенных папок с длинными именами и б) с файлами содержащими странные Юникод символы. Самим проводником вы проблему не воспроизведете, но вот внешние программы вполне себе могут создать ситуацию, с которой проводник справится не сможет. |
20.03.2016, 10:56 | #7 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
|
||
20.03.2016, 11:21 | #8 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Потому что вы делали ваши папки самим проводником.
еxplorer.exe / cmd.exe не позволят вам создать иерархию, с которой они не смогут работать. Хотя насчет cmd.exe не уверен - ограничение можно обойти воспользовавшись короткими именами. Цитата:
Да я с этим как бы и не спорю... А потребителю какая разница? Насчет того почему у проводника проблемы я ничего не говорил, я только отметил факт, что у проводника проблемы, связанные с длиной имен и нестандартными символами. |
|
20.03.2016, 11:27 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так автор же хочет и создавать длинные пути в проводнике, а не только смотреть.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
20.03.2016, 12:58 | #10 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Блин, хотел понатыкать длиннопост по сабжу экрана на 3.
Передумал. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запись слова в список с условием ограничения на его длину | emdroof | C# (си шарп) | 1 | 09.03.2013 22:39 |
Отслеживание обращений к файлу или папке (C++) | Аня_Ф | Помощь студентам | 6 | 02.10.2012 21:05 |
как посчитать длину пути? | lisa007x | Помощь студентам | 0 | 30.09.2010 11:36 |
Функция CallWndProc. Получить путь к папке или файлу к которому преднозначено сообщение | Irat | Помощь студентам | 1 | 16.02.2008 23:36 |