2017-02-05 8 views
0

У меня есть код Applescript, который переключается на указанный каталог KEYSTROKEing путь в диалоговом окне «Перейти».Может ли Applescript использоваться, чтобы определить, существует ли каталог (путь)?

К сожалению, это диалоговое окно NOT вызывает ошибку, если запрашиваемая директория не существует ?! Он просто доходит, насколько это возможно, по пути, а затем ДАМПЫ НЕЗАВИСИМАЯ ПУТЬ ФРАГМЕНТ в текстовое поле по умолчанию любого окна находится под ним!

Пример: если «~/Музыка/не существует», он переключится на папку «Музыка» в домашней папке пользователя, а затем «введите» «несуществующий» в текстовое поле по умолчанию для нижнего слоя, если оно есть.

Следовательно, мне нужно знать, как узнать, существует ли данный путь или нет из Applescript.

ответ

0

В AppleScript вы можете просто проверить, существует ли путь путем принуждения пути к спецификатору alias. Если путь не существует, возникает ошибка

Дальнейшее расширение программного обеспечения. Обработчик возвращает логическое значение.

on checkPathExists(thePath) 
    if thePath starts with "~" then set thePath to POSIX path of (path to home folder) & text 3 thru -1 of (get thePath) 
    try 
     POSIX file thePath as alias 
     return true 
    on error 
     return false 
    end try 
end checkPathExists 

set pathisValid to checkPathExists("~/Music/nonexistent") 

В качестве альтернативы использовать System Events, но отправка Яблочный событие немного дороже:

set thePath to "~/Music/nonexistent" 
tell application "System Events" to set pathisValid to exists disk item thePath 
+0

оба варианта работали! Спасибо. –