Applescript 测试文件是不是存在
Posted
技术标签:
【中文标题】Applescript 测试文件是不是存在【英文标题】:Applescript testing for file existenceApplescript 测试文件是否存在 【发布时间】:2010-08-12 15:35:38 【问题描述】:好的,我认为这将是一个简单的,但显然我错过了一些明显的东西。我的代码如下:
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】:我使用这个子程序来查看文件是否存在:
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 也有一个具有相同功能的命令exists
。【参考方案2】:
除了“存在”是一个 Finder 或系统事件命令之外,这很容易。这不是一个直接的 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$"
【讨论】:
他收到了我的((path to desktop folder) & "file$") as string
。这就是我多年来一直这样做的方式,我从来没有遇到过问题。
是的,我知道它有效,因为一开始我也是这样做的。 Applescript 很好……它有助于纠正小错误。如果您在将其强制为字符串之前查看加法的结果,它看起来像这样“alias "Macintosh HD:Users:hmcshane:Desktop:", "file$""。这是一个包含 2 个项目的列表,所以这肯定不是我们想要的。希望更好地了解该理论将有助于将来解决更复杂但行不通的问题。
我从来没有这样想过,但你的更干净。感谢您的提示。【参考方案3】:
避免原始错误 无法获取文件“OS X:Users:user:Desktop:files$”。 只需添加到脚本告诉块 告诉应用程序“Finder” 将 fileTarget 设置为 ((桌面文件夹的路径) & "file$") 作为字符串
如果文件fileTarget存在则 显示对话框“它存在” 别的 显示对话框“它不存在” 万一 结束告诉
【讨论】:
以上是关于Applescript 测试文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)