我知道如何检查文件/文件夹是否存在,但我想知道如何检查文件/文件夹是否是AppleScript的符号链接。
欢迎任何帮助。感谢。
答案 0 :(得分:2)
如果你能以POSIX风格路径的形式提供输入(/
作为分隔符),这里有一个使用do shell script
和shell {{1}的处理程序文件测试运算符:
-L
注意事项:
on isSymlink(posixPath)
try
do shell script "[[ -L " & quoted form of posixPath & " ]]"
return true
end try
return false
end isSymlink
# Sample call.
my isSymlink("/User Guides And Information") # -> true
# If you have an HFS-style path (':' as the separator), simply prepend
# `POSIX path of`.
my isSymlink(POSIX path of "Macintosh HD:User Guides And Information")
。false
应用于表示符号链接的HFS样式路径字符串,可以使符号链接立即解析为其目标;换句话说:返回的对象表示符号链接的目标(原始),而不是符号链接本身; e.g:alias
# Returns reference to *target*,
# "Macintosh HD:Library:Documentation:User Guides And Information.localized:"
alias "Macintosh HD:User Guides And Information"
/ System Events
说明符的file
上下文中也会发生同样的情况: target 将被返回:folder
tell application "System Events"
# Returns reference to *target* folder,
# "Macintosh HD:Library:Documentation:User Guides And Information.localized:"
folder "Macintosh HD:User Guides And Information"
end tell
- 始终使用alias file
和对象说明符tell application "Finder"
,即使符号链接的目标也是如此是文件夹 :file
tell application "Finder"
file "Macintosh HD:User Guides And Information" # -> alias file
end tell
个实例的符号链接 - Finder自己的别名文件(通过按住Control键单击项目并选择alias file
创建)也表示相同方式 - 使用Make Alias
属性来区分它们:true符号链接返回file type
(原文如此),而Finder别名返回slnk
(原文如此)。鉴于上述情况:如果您仍然需要处理程序来测试alis
Finder
对象是否为符号链接的有限用例:
file [alias]