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