Виртуальное слияние директорий

Тема в разделе "WASM.WIN32", создана пользователем ormoulu, 4 дек 2021.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Знает ли кто-нибудь технику или ПО, позволяющие виртуально/временно объединять (merge) две или более директорий в Windows? Что-то вроде жестких ссылок (hard links), но позволяющее проецировать содержимое одной директории на другую (с сохранением видимости содержимого второй директории).

    Если ничего уже существующего нет, ваши предложения по реализации такой технологии?

    Где может быть полезно: контейнеризация софта, который любит складывать данные в папку установки, для быстрого сброса либо разделения между пользователями, для отката обновлений.
     
  2. Artem_N

    Artem_N Artem N

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    74
    В Проводнике есть Библиотеки. Это, похоже, какая-то слишком высокоуровневая штука самого Проводника, но может для неё есть API (нагуглить невозможно).
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Artem_N,
    Библиотеки - это виртуальные каталоги. ТСу NTFS junctions нужны. ПО у Руссиновича есть.
     
  4. Artem_N

    Artem_N Artem N

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    74
    Попробовал сейчас, ничего у меня не получилось.
    Junction point может быть только новым "каталогом", а не уже существующем. Добавить к "каталогу" дополнительный путь не даёт.
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Ну да, так и делается. Один каталог с контентом монтируется как подкаталог в другой. Если же объединять именно контенты двух каталогов, то как разруливать конфликты имен и в какой "реальный" каталог прописывать новые файлы?
     
    Artem_N нравится это.
  6. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Если речь о программе с данными, оптимально чтобы один каталог был readonly (исполняемые файлы), второй доступен на запись (данные и обновления). Соответственно при обновлении или конфликте файлов видимым должен остаться файл из перезаписываемого каталога. Если же это файлохранилище (типа той же библиотеки), можно изменять имена, как это например делается при копировании.
     
  7. focussoft

    focussoft New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2018
    Сообщения:
    14
    Эта задача точно 100% выполнима с помощью минифильра. Делал сам много лет назад. Перехватываешь IRP_MJ_DIRECTORY_CONTROL подсовываешь нужны файлы.
    потом при любом IRP_MJ_CREATE для добавленных файлов делаешь редирект на файл оригинала. таким образом при пролистывании одно директории видны файлы и субдиректории из первой и из второй директории.
    при попытки открыть или просмотротеть свойства одного из файлов открывается файл оригинал. короче такой путь рабочий.
    --- Сообщение объединено, 7 дек 2021 ---
    минифильтры работают начиная с xp и выше
     
    ormoulu нравится это.