общее решение такого рода проблемы заключается в использовании "соединений" или "символических ссылок". Короче говоря, соединение или символическая ссылка-это удобный способ добраться до определенного каталога в папке файловой системы Windows из других мест (например, из другого каталога на том же или из другого Тома). Разница между соединениями и символическими ссылками заключается в том, что соединения могут указывать не на сетевые диски, а только на локальные подключенные Тома. Однако символическая ссылка имеет возможность чтобы указать сетевую цель с именем файла UNC.
для меня обычно достаточно соединения, поэтому мой ответ относится только к соединениям. Но то же самое можно достичь с помощью символических ссылок.
чтобы прояснить концепцию, вот пример использования двух разных соединений:
- исходная (целевая) папка: C:\tmp\my_project
- создано соединение нет. 1: C:\tmp2\junction_2_my_project
- создано соединение нет. 2: D:\another_junction_2_my_project
в данном примере существует 2 соединения, которые указывают на ту же (целевую) папку на C:. Теперь содержимое целевой папки может быть достигнуто и изменено тремя различными способами.
Примечание: каждое из двух соединений может быть удалено в любое время без уничтожения целевой папки. Соединение - это просто какая-то "ссылка" или "аббревиатура" для достижения целевой папки в иерархии файловой системы.
этот метод можно использовать для облачных сервисов, таких как OneDrive или Dropbox, которые позволяют синхронизировать только одну корневую папку. Если мне нужно синхронизировать вторую (целевую) папку, которая не находится в корневой папке облачной службы, я должен создать соединение с этой папкой и поместить это соединение в корневую папку облачной службы. Если моя целевая папка находится на сетевом диске, я должен создать и использовать символическую ссылку вместо соединения.
по поводу примера вверху:
- создано соединение нет. 3: E:\OneDrive\finally_junction_2_my_project
конечно, я могу назвать перекресток только так: E:\OneDrive\my_project. Это до вас, чтобы не забыть, что это просто соединение, а не исходная папка проекта. С этого момента вы можете изменить содержимое папки в папке OneDrive или Dropbox, и содержимое будет синхронизировано как обычно. Если вам не нужно соединение или символическая ссылка внутри облака сервис больше, нужно просто удалить перекресток или символическую ссылку. Содержимое исходной (целевой) папки не будет удалено.
существуют различные способы и сторонние инструменты для создания соединений или символических ссылок внутри окон. В командной оболочке (cmd)mklink.exe можно использовать в:
- создать новое соединение: mklink /J "и E:\OneDrive\junction_2_project" "c:\tmp\my_project"
- создать символ: mklink "E:\OneDrive\symlink_2_project" "c:\tmp\my_project"
Если mklink.exe не доступен в вашем window Edition это можно создать соединения с 'перекрестка.exe' от компании Sysinternals.
лично я предпочитаю создавать соединения (или символические ссылки) внутри моего файлового менеджера (Xyplorer) или с расширением оболочки Windows 'Link Shell Extension', который уже упоминался в другом ответе, потому что это больше удобно, чем использовать командную оболочку Windows.
Примечание: создание символьной ссылки требует более высоких привилегий, чем создание соединения. Поэтому я предпочитаю использовать перекрестки.