如何从AppleScript访问Cocoa-AppleScript应用程序中的捆绑文件?

时间:2011-05-08 22:14:28

标签: cocoa applescript applescript-objc

在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)它可以工作,但没有路径。

4 个答案:

答案 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”最终会出现在应用程序包的Res​​ources文件夹中。

不是100%肯定如何指定一个子文件夹,因为我到目前为止还不需要,但我猜它会是 (path to resource "Audio:SomeFile.mp3")