Нормализация недопустимых символов из имени файла: правильный и кроссплатформенный способJAVA

Программисты JAVA общаются здесь
Anonymous
Нормализация недопустимых символов из имени файла: правильный и кроссплатформенный способ

Сообщение Anonymous »

Я ищу правильный способ удалить недопустимые символы и шаблоны из имени загруженного файла.
1. «Там была тысяча вопросов об одном и том же!»
Я знаю. Но все эти ответы:
  • замена \ и / и размышление « окей, это все», что, конечно, неправда;
  • или взятие случайного и устаревшего списка «недопустимых символов» из Википедии или где-либо еще на в Интернете, удаляя все символы, появляющиеся в списке, с помощью Regex, что является чрезмерным для *nix (обычно запрещено использовать только /) и слишком мало для Windows (, AUX и т. д. редко учитываются в этих ответах);
  • или даже удалив все символы, отличные от ASCII, из имени , что явно слишком консервативно.
2. Требование
Я ищу способ (или, в частности, библиотеку, системный/SDK API или фрагмент кода), который:
  • правильно (т. е. учитываются все недопустимые символы и шаблоны в официальной документации ОС или файловой системы);
  • является кроссплатформенным (т. е. я могу передать тип ОС или файловой системы (например, WIN, UNIX, NTFS) и получить достаточное количество незаконных шаблонов для этой ОС/ФС).
3. Дополнительная информация
Самое близкое к тому, что я могу найти, — это Path.GetInvalidFileNameChars в C#. Но он также не учитывает зарезервированные ключевые слова (например, CON, AUX и т. д.).
Этот вопрос не зависит от языка, поэтому ответьте на любой язык, который вы предпочитаете. :) Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... latform-wa

Вернуться в «JAVA»