我的目标是编写一个用户友好的automator服务,通过电子邮件发送选定的文件和文件夹。
为方便用户使用,我需要:
检测输入类型。如果是文件,我会进入下一步。如果是文件夹,我首先使用名称folder_name.zip压缩它。
现在,我只处理文件(文件夹的选定或zip版本)。如果总大小小于常数(比方说20MB),我将整批添加到电子邮件中。如果没有,我问用户他/她是否真的想继续并根据他/她的回答采取行动。
清理:删除任何创建的zip文件。
我几乎停留在这个工作流程的所有级别(检测输入中各个项目的类型。根据结果有条件地行动。总结所有项目的大小,有条件地对结果采取行动)。
我还可以有两个单独的操作,一个用于文件,一个用于文件夹,但我找不到“仅文件”输入类型。
答案 0 :(得分:1)
嗯。
我为你创建了一个service workflow。它是一个概念证明。将文件添加到电子邮件的最后阶段留给您。您还应该注意,没有检查应用程序/包的包。哪个在Mac上会被视为文件,但在文件夹中也是如此。
服务工作流程中有很多事情发生。 (要测试 Automator中的工作流程添加'获取选定的Finder项'作为第一个操作。但它作为服务运行时运行速度更快)
但基本要素是:
服务接收选定的:“finder”中的文件或文件夹
1,运行Applescript。
获取所选项目并将其传递到检查大小的AppleScript上,然后如果所有项目都大于20M则显示对话框。 (注意du命令似乎向下舍入了一些内容)。 如果用户点击确定,那么我们继续前进。如果取消,工作流程将停止。 如果小于20M,则不会显示对话框。它会继续前进。
2,设置变量值
将完整列表存储在存储变量中,然后将其传递给下一个操作。
3,过滤器查找器项目
过滤'kind'是'文件夹' 将结果传递给下一个动作。
4,创建档案。
我已将此保存在桌面上。但我建议你这样做用户临时文件夹。
将结果传递给下一个操作。 (zip文件的路径,如果有的话。)
5,设置变量值
在存档变量中存储zip文件的路径(如果已创建) 请勿将其传递给下一个操作。
6,获取变量值
(不接受最后一次行动的结果。) 获取存储变量值。 将结果传递给下一个动作。
7,过滤器查找器项
过滤'kind'是不''文件夹' 将结果传递给下一个动作。
8,设置变量值
将文件列表存储在文件变量中。 ....
从这里你有两个变量。 档案和档案
您可以使用它们将他们引用文件和邮件的项目发送给您发送电子邮件..
请记住,这只是一个概念证明。
干杯