2012-03-22 48 views
1

我正在做一个简单的Applescript来检查垃圾箱是否有物品,如果是,请清空它。不过,我在检查垃圾箱是否为空时遇到了问题。这是我有:“如果文件夹不为空”

set trashcontents to text returned of (do shell script "ls ~/.Trash")

当“无标题文件夹”位于废纸篓时,将返回error "Can’t get text returned of \"untitled folder\"." number -1728 from text returned of "untitled folder";当其为空时为error "Can’t get text returned of \"\"." number -1728 from text returned of ""。我究竟做错了什么?

+0

“文本返回”仅适用于用户对话框。 'do shell script'命令只是返回由该shell脚本打印为stout的文本。 – fanaugen 2012-03-22 14:04:00

回答

2

它其实更简单:

do shell script "ls ~/.Trash" 
set trashcontents to result 

result将等于""(空字符串)当垃圾桶是空的。

但是,除非你想清空回收站取决于它是否包含特定项目(在你的问题中,它听起来像“如果它不是空的,清空它”),没有必要检查它是否为空...如果没有任何内容,Finder命令清空垃圾箱将无效:

tell application "Finder" to empty the trash 
+0

我正在检查垃圾桶是否每30分钟都是空的,如果它有一个物品,请求清空(所以没有重要的东西会被删除,否则它会一直保留为空)。但是,'设置垃圾成果'帮助,谢谢! – tkbx 2012-03-22 15:48:19

2

试试这个:

set trashcontents to quoted form of (do shell script "ls ~/.Trash")