2012-03-22 9 views
1

ゴミ箱にアイテムがあるかどうかを確認するために単純なAppleScriptを作成しています。私はゴミ箱が空であるかどうかを確認することに問題があります。ここに私が持っているものがあります:「フォルダが空でない場合」

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

"untitled folders"がゴミ箱にある場合は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

「テキストが返されました」というのは、ユーザーダイアログのみです。ごみ箱を空にするFinderコマンドは、何も効果がありません。 'do shell script'コマンドは、単にそのシェルスクリプトによって出力されたテキストを返します。 – fanaugen

答えて

2

それは実際にはさらに簡単です:ゴミ箱が空になったとき

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

result""(空の文字列)に等しくなります。

しかし、ごみ箱に特定のアイテムが含まれているかどうかによってゴミ箱を空にする必要がある場合(質問に「空でない場合は空にする」のように聞こえます)、空であるかどうかを確認する必要はありません。

tell application "Finder" to empty the trash 
+0

ゴミ箱が30分ごとに空であるかどうかをチェックしています。アイテムがある場合は、空にするように頼みます(重要なものは削除されませんが、それ以外の場合は空のままです)。しかし、「結果を出すためのゴミ箱の設定」が助けになりました。ありがとう! – tkbx

2

はこれを試してみてください:

set trashcontents to quoted form of (do shell script "ls ~/.Trash") 
関連する問題