2016-05-19 1 views
0

Я пытаюсь скопировать все файлы из папки в другую. Это работает, только если я укажу полный путь, включая имя диска и имя пользователя.AppleScript копирует файлы с a на b с любым именем пользователя

Это работает:

tell application "Finder" 
set a to folder "Macintosh HD:Users:Michael:Desktop:Files:" 
set b to folder "Macintosh HD:Users:Michael:Desktop:Copies" 
duplicate every file of a to b 

конец сказать

Но я хочу, чтобы это совместимо с любым HDD наименовании и имя пользователя. Итак, я ищу относительный путь, эквивалентный ~:Desktop.

ответ

2

Относительный путь эквивалент

set desktopFolder to path to desktop 
tell application "Finder" 
    set a to folder "Files:" of desktopFolder 
    set b to folder "Copies:" of desktopFolder 
    duplicate every file of a to b 
end tell 

Но Finder имеет свойство desktop который указывает всегда на рабочем столе папку текущего пользователя.

tell application "Finder" 
    set a to folder "Files:" of desktop 
    set b to folder "Copies:" of desktop 
    duplicate every file of a to b 
end tell 

И - еще короче - на рабочем столе папку текущего пользователя является "корнем" папка Finder

tell application "Finder" 
    duplicate every file of folder "Files" to folder "Copies" 
end tell 

Edit:

Эквивалент

~/Library/Containers/com.apple.iWork.Numbers/Data/Library/Application Support/User Templates

((path to library folder from user domain as text) & "Containers:com.apple.iWork.Numbers:Data:Library:Application Support:User Templates:")

+0

Спасибо @vadian но что, если адресат не на рабочем столе, но в более глубоком пути в пользовательской библиотеке? – Zeton

+0

Этот путь, если быть точным: ~/Библиотека/Контейнеры/com.apple.iWork.Numbers/Данные/Библиотека/Поддержка приложений/Пользовательские шаблоны – Zeton

+0

Я обновил ответ – vadian

Смежные вопросы