Я создал библиотеку Racket library для удобства доступа к каталогам XDG Basedir. Поскольку я хочу, чтобы библиотека также использовалась в Windows (для кроссплатформенных программ), я использую стандартные каталоги Windows в качестве значений по умолчанию, когда переменные среды XDG не установлены.
В настоящее время я использую следующее:
$XDG_DATA_HOME=%LOCALAPPDATA%$XDG_DATA_DIRS=%APPDATA%$XDG_CONFIG_HOME=%LOCALAPPDATA%$XDG_CONFIG_DIRS=%APPDATA%$XDG_CACHE_HOME=%TEMP%$XDG_RUNTIME_DIR=%TEMP%
У меня вопрос, есть ли лучшие значения по умолчанию, чем те. Я знаю, что %TEMP% как $XDG_RUNTIME_DIR не так, так как он действительно должен быть на ramfs, как /tmp, но я не знаю ни одного каталога в Windows, подобного этому. В Windows кажется, что нет хорошего способа разделить каталоги данных и конфигурации, поэтому я использую для них одни и те же каталоги. У меня есть ощущение, что %LOCALAPPDATA% - лучший выбор для доступных для записи переменных $XDG_*_HOME и иметь конфигурацию "роуминга" в списках $XDG_*_DIRS для чтения и, как правило, не перезаписывать. Но сочтут ли странные и несогласные корпоративные пользователи Windows, имеющие конфигурацию роуминга, странным и несогласным?