POSIX 文件在告诉块中工作

POSIX file works in tell block

以下在脚本编辑器(或 Applescript 应用程序)中有效,但在 XCode 中无效:

tell application "Finder" to set folder_list to items of folder POSIX file "/Users"

具体来说,我在运行时得到:

Finder got an error: Can’t make «class ocid» id «data optr000000002094230000600000» into type integer. (error -1700)  

如果我尝试 "double coercion":

...((folder POSIX file "/Users") as POSIX file)

我得到:

Can’t make «class cfol» «script» of application "Finder" into type POSIX file. (error -1700) 

我确实看到过类似的讨论,但解决方案对我不起作用: "POSIX file" works in Applescript Editor, not in XCode

谢谢!

//里德

p.s。我知道我可以只使用 "Macintosh HD:Users"... 这行得通,除非 有人重命名了他们的硬盘。

你可以尝试自己把它弄平,我怀疑 AppleScript 编辑器会为你做的:

 tell application "Finder" to set folder_list to items of folder (POSIX file "/Users" as text)

我所做的是将 posix 文件强制转换为文本,否则它是 class furl 的,这确实不是 Finder 可以接受的。我会尝试将您的 posix file 语句强制转换为文本,看看是否有帮助。

这会在我的编辑器中和脚本菜单中编译和运行:

tell application "Xcode"
   tell application "Finder"
       set m to folder (POSIX file "/Users" as text)
       set n to name of m
       tell me to display alert n
   end tell
end tell

希望对您有所帮助。

Applescript 有 "path to" 命令来查找众所周知的文件夹的路径,例如用户的主文件夹、桌面、文档文件夹等。这是访问文件夹的最佳方式。您可以在 "path to" 命令的标准添加 applescript 字典中看到 applescript 知道的所有位置。它还知道用户文件夹的位置。因此,我会像这样编写您的代码...

set usersPath to path to users folder
tell application "Finder" to set folder_list to items of usersPath