Хорошо, я думал, что это будет простой, но, по-видимому, я пропускаю что-то очевидное. Мой код выглядит следующим образом:
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$".
. Не имеет значения, существует файл или нет, это та же самая ошибка, которую я получаю. Я пробовал дюжину разных вещей, но это все равно меня озадачивает.
Я использую эту подпрограмму, чтобы узнать, существует ли файл или нет:
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
Добавьте соль по вкусу.
Это просто, за исключением того, что «существует» - это команда Finder или System Events. Это не простая команда в формате applescript. Таким образом, вы должны заключить его в блок кода приложения tell. К вашему сведению: вот еще один способ, не требующий приложения. Это работает, потому что, когда вы приводите путь к «псевдониму», он должен существовать, иначе вы получите ошибку. Итак, вы могли сделать следующее.
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$"