Хорошо, я думал, что это будет просто, но, видимо, я упускаю что-то очевидное. Мой код выглядит следующим образом:
set fileTarget to ((path to desktop folder) & "file$") as string
if file fileTarget exists then
display dialog "it exists"
else
display dialog "it does not exist"
end if
Легко, верно? К сожалению, когда я запускаю скрипт, он возвращает ошибку
Can’t get file "OS X:Users:user:Desktop:files$".
Неважно, существует файл или нет, я получаю ту же ошибку. Я пробовал дюжину разных вещей, но это все еще ставит меня в тупик.
Ответ 1 · рейтинг 22 · Philip Regan
Я использую эту подпрограмму, чтобы увидеть, существует ли файл или нет:
on FileExists(theFile) -- (String) as Boolean
tell application "System Events"
if exists file theFile then
return true
else
return false
end if
end tell
end FileExists
Добавьте соль по вкусу.
Ответ 2 · рейтинг 7 · regulus6633
Это просто, за исключением того, что "существует" - это команда Finder или System Events. Это не прямая команда AppleScript. Таким образом, вы должны обернуть его в блок кода приложения. К вашему сведению: вот еще один способ, который не требует приложения. Это работает, потому что, когда вы указываете путь к "алиасу", он должен существовать, иначе вы получите ошибку. Итак, вы можете сделать следующее.
set fileTarget to (path to desktop folder as text) & "file$"
try
fileTarget as alias
display dialog "it exists"
on error
display dialog "it does not exist"
end try
ПРИМЕЧАНИЕ: у вас есть ошибка в вашем коде. Вы используете оператор & для добавления строк, но делаете это неправильно, хотя по счастливой случайности получаете правильный ответ. При использовании оператора & каждый объект по обе стороны от оператора должен быть строкой. "Путь к папке на рабочем столе" не является строкой, поэтому мы сначала должны сделать ее строкой, а затем добавить к ней строку "file$". Так сделай так...
set fileTarget to (path to desktop folder as text) & "file$"
Ответ 3 · Tom
чтобы избежать исходной ошибки Не удается получить файл "OS X: Пользователи: пользователь: Рабочий стол: файлы $". просто добавьте в скрипт блок сообщения, сообщите приложению "Finder", установите для fileTarget значение ((путь к папке на рабочем столе) и "file $") в виде строки
если файл fileTarget существует, то отобразите диалоговое окно "он существует", иначе отобразите диалоговое окно "он не существует" end if end tell