Для начала кратко о проблеме которая натолкнула на данный тест.
Предыстория: Пользователь одного из AIR приложений, пожаловался на то, что пользуясь приложением он не может скачать файлы и положить их в свою папочку.
Проблема: Пользователь умудрился при помощи приложения создать путь (серию папок, одна из них 191 символ) которые превысили лимит ОС в 254 символа, в связи с чем AIR отказался копировать что-либо в эту папку, или вообще с ней хоть как-то работать.
Решение: Введен лимит на длину папок и имен файлов (exception catcher до этого был только)
В свете вышеописанных событий, возникла идея провести тест для трех “конкурентных” технологий. Дабы проверить их поведение в данных ситуациях.
Каждой технологии было предложено создать заведомо превышающий системное ограничение путь и скопировать туда файл. Результаты теста ниже, технологии приведенны в порядке качественности обработки такой ситуации по убыванию качества.
1. Microsoft WPF (Windows Presentation Foundation) - отказалась создавать такой путь, при этом сообщив нам о том, что мы пытаемся превысить лимит (“The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.”);
2. MDM Zink (известная обертка для Flash/Flex приложений, которая дает доступ к файловой системе и не только) – отказалась создавать путь, но молча тихо и по партизански.
И наш “победитель”:
3. Adobe AIR – позволяет создать скольугодно длиные и вложенные пути, которые потом сложно удалить стандартными методами, можно удалить только отключив длинные имена в Total Commander или воспользовавшись старым добрым Volcov Commander. Казалось бы, что Adobe молодцы, но вся загвоздка в том, что они позволяют создать эти папки, но они не работают с ними (нельзя вних что-то скопировать к примеру) и не дают удалить потом созданные папки, выдавая нам File I/O Error.
Итог: Чем думаю Адобовские девелоперы? Позволяя делать то с чем они и сами не могут работать.