Finderのexistsコマンドのバグ

同僚からAppleScriptの相談を受けた。

「1.txtというファイルの存在確認を行いたいのだが、0001.txtでも、001.txtでもtrueが返ってくるよ〜」

なのだとか。「そんなバカな」と思いつつ、マシンを再起動させたり書き方を変えたりいろいろと試してみたのだが、

 「あら、本当だ。みんなtrueが返ってくるねー」

という結果に(!)。海外のMLを見てみると、existsコマンドのバグだどーだと議論された形跡がある。しかも、Mac OS X 10.2の頃からこの仕様で、直っていないのだという。

バグだと分かれば、回避するためにdo shell scriptでshellコマンドを呼び出せばいい。しかし、なかなかファイルの存在確認コマンドが何であったか思い出せない。

過去に作ったScriptを漁ってみたら、、、知らないうちに、回避ルーチンを作ってあった。フルパスを文字で組み立てて、aliasにcastするというものだった。エラートラップを仕掛けておいて、エラー発生時には存在しないという判断。んーー、偉いぞ昔の自分!

Copyright By Piyomaru Software. All Rights Reserved