AppleScript学习笔记(五)文件夹,文件和路径

这部分的内容相对于前面的几部分有趣很多,本文介绍的是获取文件夹和文件的路径,并进行一些简单的操作。


获取文件夹或文件的路径

在Java桌面应用编写时有一个FileChooser,在AppleScript中可以通过简单的两个单词来调出文件选择窗口。

脚本如下:

choose folder

然后选择一个文件夹(可以看到我们无法选择文件):



在点击选取后,结果输出为该文件夹的路径:

alias "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:"

这里的冒号“:”相当于文件路径中的分割符号“/”。

这里的alias表示给出的是文件的ID,而不是文件本身的存储位置,这样使得该文件在被移动后脚本依然能够找到该文件的存储位置。

如果路径前面的是file或folder,则表示返回的路径是文件或文件夹本身的存储位置。

最后的一个冒号指出AFNetworkingDemo是一个文件夹。


选择文件的方法:

choose file

在选取一个文件后返回的是该文件的路径:

alias "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"

可以看到路径结尾是没有冒号的,也就是podFile是一个文件。

同样地,我们无法选取一个文件夹,只能选择一个文件。



打开文件或文件夹

通过调用Finder处理程序可以打开文件或文件夹。当然打开前,我们要获取文件或文件夹的路径。

例如:

(*
tell application "Finder"
	open folder "Macintosh HD:Users:apple:Desktop:objc.io: #1 Light View Controllers:"
end tell
*)

tell application "Finder"
	open alias "Macintosh HD:Users:apple:Desktop:objc.io: #1 Light View Controllers:"
end tell

这两种方法都可以打开#1 Light View Controllers文件夹。


打开文件同理,方法如下:

(*
tell application "Finder"
	open file "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"
end tell
*)

tell application "Finder"
	open alias "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"
end tell


当然我们可以将choose file / folder和open file/folder/alias结合来使用。这样就不需要我们手动去填充文件和文件夹的路径了。例如:

set filePath to choose file
tell application "Finder"
	open file filePath
end tell
filePath


将路径赋给变量

我们可以将路径的值赋给变量。例如:

tell application "Finder"
	set filePath to file "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"
end tell

结果输出如下:

document file "podFile" of folder "AFNetworkingDemo" of folder "Desktop" of folder "apple" of folder "Users" of startup disk of application "Finder"


这样的路径表示形式实现太难看了,不过可以a reference to指令将其优化。例如:

tell application "Finder"
	set filePath to a reference to file "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"
end tell

结果输出为:

file "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile" of application "Finder"


而更好的方法是使用alias获取文件的ID而不是绝对位置:

set filePath to alias "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"

结果区输出为:

alias "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile"


之前我们可以通过empty the trash指令来清空废纸篓,这里我们也可以将文件直接移动到废纸篓中:

tell application "Finder"
	move "Macintosh HD:Users:apple:Desktop:AFNetworkingDemo:podFile" to the trash
end tell

使用move to指令可以让Finder程序将你的文件移动到其它位置。


更多详细内容请参考《AppleScript for Absolute Starters》一书(中文名为《苹果脚本跟我学》)。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AppleScript 简明基础教程 iDoraemon Nathan 编著 目录 第一章 AppleScript入门! 第一节 什么是AppleScript! 第二节 AppleScript的工作机制! 第三节 AppleScript的用途和它带来的好处! 第四节 和AppleScript有关的程序和设置! 第节 Automator和AppleScript! 第二章 快速上手AppleScript编辑器! 第一节 挖掘实用的功能! 第二节 脚本的存储格式! 第三节 支持AppleScript的应用程序! 第四节 AppleScript的录制功能! 应用实例1:建立100个子文件夹! 第三章 AppleScrip语言初步! 第一节 对象、属性和命令! 第二节 标识符和关键字! 第三节 数据类型! 第四节 强制数据类型转换! 第节 运算符! 第六节 提取对象中的元素! 第七节 添加注释和括号! 第八节 代码缩写! 第四章 读懂AppleScript字典! 第一节 打开特定应用程序的AppleScript字典! 第二节 读懂AppleScript字典! 第章 变量和属性! ! Nathan编著 3  第一节 变量的概念! 第二节 全局变量和局部变量! 第三节 数据共享机制! 第四节 属性! 第节 预定义变量! 第六章 流程控制语句! 第一节 Tell语句! 第二节 条件语句If! 第三节 循环语句! 第四节 Considering/Ignoring语句(用于文本比较)! 第七章 基本用户交互! 第一节 简单对话框和输入框! 第二节 警告对话框! 第三节 列表选择对话框! 第四节 文件选择对话框! 第节 其他用户交互! 第八章 错误处理! 第一节 基本的Try语句! 第二节 带有错误处理的Try语句! 第三节 AppleScript中的错误(Error)! 第四节 超时(Timeout)! 第九章 文件操作! 第一节 Alias类型! 第二节 相对路径和POSIX路径! 第三节 文件读取! 第四节 文件写入! Nathan编著 4 第十章 事件处理器! 第一节 基本的事件处理器! 第二节 带参数的事件处理器! 第三节 返回值! 第四节 run和open事件处理器! 第节 保持打开的脚本应用程序! 第六节 文件夹操作! 第十一章 脚本对象! 第一节 me关键字! 第二节 编写和使用基本的script对象! 第三节 载入和调用外部script对象! 第四节 修改外部script对象中的属性变量! 附录一:AppleScript保留关键字! 附录二:预定义的错误代码和错误信息! AppleScript错误:! Mac OS系统错误! 后记!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值