0

这是我的第一个小程序。我想我会做一些简单的事情,比如使用路径导航到文件夹并列出子文件夹......不幸的是,我无法弄清楚:-)

这是我迄今为止尝试过的:

第一次尝试:

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. 提供一个有效的例子。

提前致谢。

顺便说一句,我的机器上确实存在该文件夹...

4

2 回答 2

1

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

set folderPath to (choose folder) as text
于 2011-04-04T18:01:47.760 回答
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

可选的

要将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:"

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

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

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

如果你有问题,就问吧。:)

于 2011-07-04T23:08:35.770 回答