使用applescript列出子文件夹

时间:2011-04-04 15:28:19

标签: applescript finder

这是我的第一个苹果。我以为我会做一些简单的事情,比如使用路径导航到文件夹并列出子文件夹......不幸的是,我无法弄明白: - )

这是我到目前为止所尝试的内容:

第一次尝试:

tell application "Finder"
    set the_folder to POSIX path of "Users:MyName:Doc"
    log the_folder
    set folder_list to every item of folder the_folder
    log folder_list 
end tell

这会产生错误: “Finder收到错误:无法获取文件夹”/ Users / MyName / Doc“。

有人可以请: 1.向我解释我做错了什么。 2.提供一个有效的例子。

提前致谢。

btw文件夹确实存在于我的机器上......

2 个答案:

答案 0 :(得分:1)

Posix路径是您在命令行中使用的路径,并且是“/”分隔的。 Applescript路径是“:”分开,所以只需使用它们。试试这个脚本,看看路径应该是什么样的......

set folderPath to (choose folder) as text

答案 1 :(得分:1)

更新:哎呀!看来我给了你错误的信息,所以我会给你正确的信息。

命令POSIX path of需要完整的别名引用。我的意思是提供完整的文件引用(即<your_disk_name>:Users:<your_user_name>:somefolder:)。如果您指的是使用冒号结束引用的文件夹(即Macintosh HD:Users:),请确保。改进后的版本如下所示:

tell application "Finder"
  set the_folder to (POSIX path of ("<your_disk_name>:Users:<your_user_name>:Doc:") as alias) as alias
  set folder_list to every item of the_folder
end tell

OPTIONAL

要将POSIX路径(即/Users/<your_user_name>/somefolder)强制转换回alias,需要进行两次转换。

转换1:第一步是将引用转换为文件引用。为此,请在引用后放置单词as POSIX file,如下所示:

"/Users/<your_user_name>/somefolder" as POSIX file

此代码以此格式生成文件引用:file "<your_disk_name>:Users:<your_user_name>:somefolder:"

转换2 :在引用的末尾添加第二个强制as alias ...

"/Users/<your_user_name>/somefolder" as POSIX file as alias

此代码生成实际的别名引用:alias "<your_disk_name>:Users:<your_user_name>:somefolder:

如果您有任何疑问,请询问。 :)