Comments 18
Ты хочешь пользоваться благами цивилизации и начать выполнять задачи быстрее — ты покупаешь компьютер машину.
Но пользование машиной — штука сложная. И пользоваться ей так как тебе вздумается: создавать файлы длиной 248 символов ездить по всюду на максимальной скорости 200 (несмотря на то, что машина может) — нельзя, раскидывать свои файлы по не предназначенным для этого папкам ездить по любой ровной поверхности, газонам и встречке — нельзя.
Ты идешь учиться водить и принимать правила и ограничения, которые позволяют безопасно существовать в соседстве с другими водителями: нельзя создавать миллион вложенных папок и длинных имен файлов ехать быстрее 60кмч по городу, нужно писать имена на латинице без пробелов, а не китайскими иероглифами придерживаться понятной для других водителей схемы оповещения, моргая поворотниками и включая фонари.
То, что компьютер машина "позволяет" делать — не значит, что это можно делать везде, а не только в сферической папке в вакууме на испытательном или гоночном треке.
Мораль: карать ректально просвещать любого, кто не следует сложившимся правилам.
Есть две
Ими можно пользоваться как тебе вздумается, например
Но если
Мораль:
У нас в 99% юзеры и знать не знают, какой длины будет получившиеся имена файлов, потому что они генерируются автоматом либо вордом по первому абзацу, либо это сохраняемая из интернета страница с охренительно длинным заголовком, сгенерированным, между прочим, вами, господа программисты :)
Сейчас дела обстоят так, что файловая система и некоторый софт поддерживают очень длинные имена и создают такие, а другой софт не поддерживает и не может к ним обратиться.
TCHAR szDir[MAX_PATH];
(Строка, с максимальным количеством символов в 260)
И если какая-то программа будет написана копипастом оттуда… Она, скорее всего, сломается и упадёт, а может ещё перед этим натворить делов. Так что лучше с включением длинных путей поаккуратнее быть.
gallery.technet.microsoft.com/Get-AlphaFSChildItems-ff95f60f
Не внезапно. Даже гуглить не обязательно. Если откроете 3ю ссылку из списка в конце моей статьи, то там будет упоминание этой либы.
Даже если проблему решал кто-то другой, ничто не мешает подойти к ее решению с другой стороны.
Пользуюсь AlphaFS, правда без обертки в виде командлетов. Проблем нет.
https://github.com/alphaleonis/AlphaFS
AlphaFS знаю и использую, в ней даже есть изменения после моей дискуссии с разработчиком.
Но:
1. Использование сторонних библиотек в инфраструктуре например стороннего заказчика не всегда возможно.
2. AlphaFS не универсальна — она до сих пор не позволяет сделать аналог Get-ChildItem -Directory -Recurse с захватом ошибок через catch.
У меня недавно был косяк в cmake скрипте. Вместо сборки third party я насоздавал рекурсивно очень много вложенных каталогов. Так вот, ключи в реестре не помогли, total не помог. Проводник вообще крэшился при ручной попытке зайти слишком глубоко. Всякие killcopy тоже не смогли.
Спасла линуксовая консоль в WSL.
Т.е. переходом на W10 у менеджера Васи проблемы не решаются.
В опросе отметил "другое", ибо везде использую Linux. С описываемой проблемой не сталкивался.
Windows, PowerShell и длинные пути