【发布时间】:2021-05-28 05:50:57
【问题描述】:
所以我正在尝试编写一个脚本,将我想要的任何文本写入我桌面上的新文件。
set the theText to "hello world"
set fileName to "file.txt"
set thePath to "~/Desktop/"
try
tell application "Finder" to make file at thePath with properties {name:fileName}
end try
set myFile to open for access (thePath & fileName) with write permission
write theText to myFile
close access myFile
此代码基于this post 上第二受欢迎的答案。当我尝试执行上面的版本时,它给了我错误:"File not open with write permission." number -61 from "~/Desktop/file.txt" to «class fsrf»。我尝试运行我的代码所基于的代码,它运行完美。我还尝试使用choose file 运行它,这也有效。为什么 Applescript 在使用预定义路径时会出现问题?
【问题讨论】:
-
Finder 不知道 POSIX 路径。
-
@red_menace 我以前见过类似的关于 Finder 和 posix 路径的 cmets,但我不明白。我的理解是 posix 路径只是文件说明符,并且内置于 applescript - 与别名和文件相同。我不确定Finder与它有什么关系?您当然可以告诉 Finder 使用 posix 样式的引用。请注意,我不是在质疑答案,因为我同意 Finder 不是创建文件所必需的。只是想知道您是否可以详细说明上面的评论。
-
@Mockman :OP 尝试使用 Finder 使用 POSIX 路径创建文件 - 某些术语可以使用任何一种格式,但 Finder 使用冒号分隔的 HFS 路径。当使用带有 POSIX 路径的 Finder 时,需要使用
POSIX file说明符来指定使用 POSIX 路径的文件(也可以使用System Events)。有关详细信息,请参阅 AppleScript 语言指南中的 Aliases and Files 部分。 -
但这不只是语法问题吗? OP 的代码可以通过简单地包含“posix 文件”来创建文件(撇开波浪号问题,无论如何都需要修复)。同样,我同意这个答案,但例如,如果目的是使用 shell 脚本来编写文本和做其他事情,那么 posix 文件方法就可以了。以这种方式构建它听起来有点不祥,好像这种方法充满危险并且注定要失败。即使有更好的方法,它也确实有效。
-
@Mockman AppleScript 是 OS X 之前的遗留物。在系统 7-9 中没有 UNIX 子库,因此没有 POSIX 路径。在 OS X 中,Apple 逐渐在系统事件和脚本添加等许多 API 中启用了对 POSIX 路径的支持,但 Finder 始终停留在 HFS 气泡中。
标签: applescript