0

在 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

4 回答 4

1

对于我使用的资源文件:

set fname to POSIX path of (path to resource "filename")
于 2015-08-11T08:39:36.513 回答
0

答案是,在 Cocoa-AppleScript 应用程序中,正确的 sintaxis 不是:

(path to me as text)

但:

(path to current application as text)

me作为自引用无效。正确的是current application.

希望这对其他人有帮助:)

于 2011-05-10T12:53:46.377 回答
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")

于 2013-01-24T14:59:43.003 回答
0

“作为字符串的路径”似乎是正确的,但您可能还有其他 2 个问题。1) 音频文件的路径应包含“内容”而不是“内容”。2)在显示对话框中,您不需要“引用表单”,因为 posix 路径是一个字符串,可以毫无问题地添加到您的“路径:”字符串中。所以检查这两件事,看看它是否有帮助。

编辑: 如果上述方法没有帮助,则有一种“可可方法来获取应用程序的路径。我不知道 applescript-objc 语法,但这是您通过可可方法获取它的方式......

NSString* appPath = [[NSBundle mainBundle] bundlePath];

要直接获取资源的路径,请使用此...

NSString* resourcePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
于 2011-05-08T22:43:39.953 回答