Я создал библиотеку 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, имеющие конфигурацию роуминга, странным и несогласным?