Я хочу проверить, является ли моя строка допустимым путем к файлу окон. Я искал вокруг, и кажется, что нет никакого надежного метода, чтобы сделать это. Также я проверил библиотеку файловой системы повышения, и никакая очевидная функция не существует, чтобы сделать эту проверку, возможно, что-то как is_valid_windows_name
Я не верю, что для этого существует стандартный API C ++.
Обратите внимание, что Windows API позволяет использовать больше имен файлов, чем Windows Shell (имена файлов, которые пользователь может использовать в проводнике windws).
Вам следует взглянуть на api оболочки Windows.
Другая возможность - использовать метод проб и ошибок, таким образом, вы действительно независимы от текущей файловой системы.
Самый простой способ - запретить
\ / <> | ":? *
и все будет в порядке.
Вы можете использовать функцию _splitpath ()
и анализировать вывод (на основе этого вы можете легко сказать, действителен ваш путь или нет).
См. MSDN для получения дополнительной информации.
Обратите внимание, что эта функция зависит от Windows.