Зробіть так, щоб вміст двох папок відображався в одній


3

У Windows 7 у мене є три папки: "Зображення", "Активи" та "Усі".

Я хочу, щоб вміст "Зображення" та "Активи" автоматично відображався у "всіх" без копіювання цих файлів у цю папку (наприклад, я не хочу копіювати файли). Я також лише хочу, щоб вміст було скопійовано, а не папки themslves (Причина цього полягає в тому, що якщо папки будуть скопійовані, вони стануть підкаталогами. Я використовую гарячу папку для друку, що отримує доступ до "всього", але це не вдається побачити підкаталоги у "всіх").

Коли зображення та активи оновлюються (наприклад, додаються або видаляються файли), "усі" повинні також автоматично оновлюватися.

Як я можу це зробити?

Це те, що я спробував:

Бібліотеки : Ця функція вбудована в Windows. Це працює саме так, як я хочу. Однак гаряча папка для друку не може розпізнати бібліотеку як папку.

Розширення Sym Link : Я можу використовувати це для того, щоб папки "зображення" та "активи" відображалися як підкаталоги "всіх". Однак я хочу, щоб вміст "images" / "properties" відображався в папці "all" (я не хочу, щоб каталоги відображалися як підкаталоги, оскільки, як зазначено, гаряча папка для друку не може отримати доступ до підкаталогів).


Чи може ваша "гаряча папка для друку" отримати доступ до двох або більше папок? Потім просто вкажіть його, щоб отримати доступ до зображень та об’єктів . Зрозуміло, це не те, що ви хочете, але я не думаю, що ви можете легко автосимвольно з'єднати дві папки в одну, не стикаючись з проблемами. Як ви вирішите конфлікти?
ADTC

Ні, він може отримати доступ лише до однієї папки.
big_smile

Відповіді:


2

Це неможливо зробити легко за допомогою інструментів, доступних у Windows.

Бібліотеки не є звичайними папками, але є віртуальними папками. Не багато додатків можуть безпосередньо використовувати об’єкти Windows Shell, які не є об’єктами файлової системи.

Таким чином, сценарій, який створює жорсткі посилання у "всіх" для всіх файлів у "Активи" та "Зображення", здається, найпростішим способом.

cd all
rem Remove all the files in all
del /f /q *.*

rem Create hard links to files from assets and images
for %I in (<full-path-to>\assets\*.*) do mklink /h "%~nxI" "%I"
for %I in (<full-path-to>\images\*.*) do mklink /h "%~nxI" "%I"

Тут %~nxIбуде розширено лише ім’я та розширення файлу, без шляху. Якщо папки знаходяться на різних дисках, вам потрібно використовувати символічні посилання: видалити /hперемикач з mklinkкоманди.

Запускайте сценарій вище кожного разу, коли вміст "Активи" та / або "Зображення" оновлюється або періодично запускайте його.

Кращим рішенням буде спостереження за оновленнями файлів у "Активах" та "Зображеннях" та синхронізовано зміни до "всіх".


0

Єдиний спосіб, який я точно знаю, - це зробити скрипт, який створює жорсткі посилання у "Все" на кожен файл із "Активи" та "Зображення".

Але я вважаю, що цей метод є досить зайвим для такого простого завдання.


0

Єдиний найкращий спосіб - використовувати метод символічних посилань (symlink). З цим symlink-creator.batфайлом просто перетягніть усі (файли та папки) з потрібної папки та введіть шлях призначення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.