Разделитель для метаданных в имени файла Windows


Я работаю над поддержкой приложения, которое передает файл в другую систему и использует структурированное имя файла для включения метаданных, включая код языка. Текущее приложение использует двухсимвольный код языка и тире/дефис в качестве разделителя.

Ex. Канада-EN-ProdName-ProdCode.txt

Я преобразую его в код языка IETF, поэтому тире-разделитель не подходит и нуждается в замене. Я пытаюсь определить разделитель, чтобы избежать будущих ошибок, и я учитывая Тильду ~.

Ex. Канада~en-GB~ProdName~ProdCode.txt

Это будет использоваться только в системах Windows Sever 2003 +. Я, конечно, не придумал эту систему разбора имени файла, чтобы получить метаданные. К сожалению, я не могу включить это в сам файл, и система назначения ожидает, что код языка будет в формате IETF с тире.

Любые мысли о возможных проблемах с использованием Тильды в имени файла, или, возможно, лучший символ, чтобы использовать? Я просто ищу второе мнение на случай, если я упускаю из виду возможный провал. Я считаю, что windows будет использовать Тильду при сокращении длинного имени файла до формата 8.3, но я не вижу в этом проблемы, поскольку OSs может обрабатывать имена файлов lang.

1 2

1 ответ:

Тильда, вероятно, хороша, но что плохого в старом добром подчеркивании _ ? Он не имеет особого значения ни в windows, ни в unix, и делает имена, которые относительно легко читать. Если нет других особых соображений, я бы избегал Тильды исключительно из паранойи, поскольку windows иногда использует ее как особый символ, как вы упомянули.