Получить сетевой адрес файла в AppleScript

Мы сеть компьютеров Mac. Я хотел бы отправить адреса электронной почты коллегам со ссылками на файлы в сетевых расположениях. Я сделал следующий AppleScript:

tell application "Finder"
  set uuu to URL of the first item of (get the selection)
  set the clipboard to uuu
end tell

который помещает URL-адрес текущего выбранного файла в буфер обмена, который затем можно вставить в сообщение (с помощью пункта меню «Добавить ссылку»), предоставив, например:

 file://localhost/Volumes/Commerciale/Clienti/

К сожалению, эти ссылки не работают. Если я выберу «Перейти к папке» в пункте меню, я смогу перейти к папке, используя URL-адрес типа afp://.

Есть ли способ получить это через AppleScript, как я делаю с URL-адресом выше?


person CRP    schedule 08.04.2010    source источник


Ответы (4)


Я решил с помощью этого скрипта:

on urlToPOSIXPath(theURL)
    return do shell script "python -c \"import urllib, urlparse, sys; print urllib.unquote(urlparse.urlparse(sys.argv[1])[2])\" " & quoted form of theURL
end urlToPOSIXPath

tell application "Finder"
    set uuu to URL of the first item of (get the selection)
    set pp to my urlToPOSIXPath(uuu)
    set the clipboard to "file://" & pp
end tell
person CRP    schedule 10.04.2010

Тома уже смонтированы на Mac получателей электронной почты? Netlink создает URL-адрес, по которому можно щелкнуть в Mail. У меня нет доли AFP здесь, чтобы проверить это:

tell application "Finder" to set netlink to URL of (get selection as alias)
person markratledge    schedule 08.04.2010
comment
Прошу прощения за возможно хромой вопрос, но что такое netlink? Приложение? Расширение скрипта? Ссылку хотелось бы. Спасибо - person Philip Regan; 08.04.2010
comment
Попробовав и этот код, и mmcgrail, это не работает (по крайней мере, для меня (и mmcgrail)). Ссылка в отправленном электронном письме является активной, но она никуда не ведет, и у меня есть целевой том, смонтированный как AFP. Здесь действительно нужно больше информации. - person Philip Regan; 08.04.2010
comment
похоже, что netlink — это просто имя переменной в приведенном выше примере. - person stib; 12.04.2010

Не "автоматически", насколько я знаю. Свойства пути URL и POSIX возвращают только общий каталог, а не сам том. Если вы используете URL-адрес, предоставленный вам Applescript, только Applescript может разрешить его. (У меня сложилось впечатление, что ОС или Applescript просто перебирают смонтированные тома в поисках файла). Вам нужно будет манипулировать строкой пути, чтобы получить нужный формат.

person Philip Regan    schedule 08.04.2010

вот расширенная версия поста markratledge

  tell application "Finder"  to set netlink to URL of (get  selection as alias)

  tell application "Mail"
     launch
     set newMessage to make new outgoing message with properties {subject:"network link", content:netlink, visible:true}

     -- Add in code for recipient, etc, etc
     --send newMessage
  end tell

но это все еще не работает, лол

person mcgrailm    schedule 08.04.2010