3

В Windows 7 у меня есть три папки: "Изображения", "Активы" и "Все".

Я хочу, чтобы содержимое "Images" и "assets" автоматически отображалось во "all" без копирования этих файлов в эту папку (например, я не хочу дублировать файлы). Я также хочу, чтобы содержимое копировалось, а не папки сами по себе (причина в том, что, если папки будут скопированы, они станут подкаталогами. Я использую горячую папку для печати, которая имеет доступ ко "всем", но не видит никаких подкаталогов в "всех").

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

Как я могу это сделать?

Вот что я попробовал:

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

Расширение Sym Link: я могу использовать это, чтобы папки "images" и "assets" отображались как подкаталоги "all". Тем не менее, я хочу, чтобы содержимое "images"/"assets" отображалось в папке "all" (я не хочу, чтобы каталоги отображались как подкаталоги, потому что, как указано, горячая папка печати не может получить доступ к подкаталогам).

3 ответа3

2

Это не может быть легко сделано с помощью инструментов, доступных в Windows.

Библиотеки не являются обычными папками, но являются виртуальными папками. Немногие приложения могут напрямую использовать объекты оболочки Windows, которые не являются объектами файловой системы.

Таким образом, скрипт, который создает жесткие ссылки в "all" для всех файлов в "Assets" и "Images", кажется самым простым способом.

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 switch из команды mklink .

Запускайте приведенный выше сценарий каждый раз, когда обновляется содержимое "Активы" и / или "Изображения", или запускайте его периодически.

Лучшее решение - следить за обновлениями файлов в разделах "Активы" и "Изображения" и синхронизировать изменения со "всеми".

0

Единственный способ, который я точно знаю, - это создать скрипт, который будет создавать жесткие ссылки в "Все" на каждый файл из "Активов" и "Изображений".

Но я думаю, что этот метод является излишним для такой простой задачи.

0

Единственный лучший способ - использовать метод символических ссылок (символических ссылок). С помощью этого файла symlink-creator.bat просто перетащите все (файлы и папки) из нужной папки и введите путь назначения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .