在AppleScript中,我曾经打过电话:
set audio_file to (path to me as string) & "Contents:Resources:Audio:Music.mp3"
display dialog "Path: " & (quoted form of POSIX path of audio_file)
我现在在Xcode的Cocoa-AppleScript项目中有这个代码。它编译得很好,但脚本根本没有运行。对话框从不显示。
没有(path to me as string)
它可以工作,但没有路径。
答案 0 :(得分:1)
对于我使用的资源文件:
set fname to POSIX path of (path to resource "filename")
答案 1 :(得分:0)
“作为字符串的路径”似乎是正确的,但您可能还有其他2个问题。 1)音频文件的路径应包含“内容”而不是“内容”。 2)在显示对话框中,您不需要“引用形式”,因为posix路径是一个字符串,可以添加到“Path:”字符串中而没有任何问题。所以检查这两件事情,看看是否有帮助。
修改强> 如果上面没有帮助,那就是“可可的方式来获取应用程序的路径。我不知道applescript-objc语法,但这就是你如何通过可可方法得到它...
NSString* appPath = [[NSBundle mainBundle] bundlePath];
要获得资源的路径,请直接使用此...
NSString* resourcePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
答案 2 :(得分:0)
答案是,在Cocoa-AppleScript应用程序中,正确的sintaxis不是:
(path to me as text)
BUT:
(path to current application as text)
me
无法作为自我引用。正确的是current application
。
希望这有助于其他人:)
答案 3 :(得分:0)
对于简单的情况,您可以将文件放在XCode项目中文件树的根级别,然后执行:
set theFilePath to (path to resource "SomeFile.ext")
在我的情况下,我正在做:
tell application "Finder"
open theFilePath
end tell
并在相关的应用程序中打开。
分发应用程序时,“SomeFile.ext”最终会出现在应用程序包的Resources文件夹中。
不是100%肯定如何指定一个子文件夹,因为我到目前为止还不需要,但我猜它会是
(path to resource "Audio:SomeFile.mp3")
?