Знает ли кто-нибудь технику или ПО, позволяющие виртуально/временно объединять (merge) две или более директорий в Windows? Что-то вроде жестких ссылок (hard links), но позволяющее проецировать содержимое одной директории на другую (с сохранением видимости содержимого второй директории). Если ничего уже существующего нет, ваши предложения по реализации такой технологии? Где может быть полезно: контейнеризация софта, который любит складывать данные в папку установки, для быстрого сброса либо разделения между пользователями, для отката обновлений.
В Проводнике есть Библиотеки. Это, похоже, какая-то слишком высокоуровневая штука самого Проводника, но может для неё есть API (нагуглить невозможно).
Попробовал сейчас, ничего у меня не получилось. Junction point может быть только новым "каталогом", а не уже существующем. Добавить к "каталогу" дополнительный путь не даёт.
Ну да, так и делается. Один каталог с контентом монтируется как подкаталог в другой. Если же объединять именно контенты двух каталогов, то как разруливать конфликты имен и в какой "реальный" каталог прописывать новые файлы?
Если речь о программе с данными, оптимально чтобы один каталог был readonly (исполняемые файлы), второй доступен на запись (данные и обновления). Соответственно при обновлении или конфликте файлов видимым должен остаться файл из перезаписываемого каталога. Если же это файлохранилище (типа той же библиотеки), можно изменять имена, как это например делается при копировании.
Эта задача точно 100% выполнима с помощью минифильра. Делал сам много лет назад. Перехватываешь IRP_MJ_DIRECTORY_CONTROL подсовываешь нужны файлы. потом при любом IRP_MJ_CREATE для добавленных файлов делаешь редирект на файл оригинала. таким образом при пролистывании одно директории видны файлы и субдиректории из первой и из второй директории. при попытки открыть или просмотротеть свойства одного из файлов открывается файл оригинал. короче такой путь рабочий. --- Сообщение объединено, 7 дек 2021 --- минифильтры работают начиная с xp и выше