Home>Monologue> Part of Script factory. scriptfactory@mac.com .

info for コマンド

標準機能追加に含まれているinfo for コマンドは、(たぶん)約2G byte以上使用されているvolumeに対して適用すると、error number -3377(MacOS 8.6の場合?MacOS 9.0.4で試したら-5887でした)で「誤りが起きました」というerrorが起きます。

僕はMacOS 8.6を使っている時に気付きました。Mac OS 9でも起きるそうです。さらに、現在MacOS 9.0.4でも起きることも確かめました。とっとと修正してください>Apple。

これでは、info for コマンドを安心して使えないので、僕は以下のようにinfo for コマンドをover rideするhandlerを作って使っております。

on info for theItem -- to avoid bug of info for 
    try 
        set theResult to continue info for theItem 
        return theResult 
    on error 
        set folderFlag to isContainer(theItem) 
        tell application "Finder" 
            set theItem to item (theItem) 
            tell theItem 
                set theName to name 
                set creationDate to creation date 
                set modDate to modification date 
                set aliasFileFlag to (class of it is alias file) 
                if not folderFlag then 
                    set thetype to file type 
                    set theCreator to creator type 
                end if 
            end tell 
        end tell 
        set infoRecord to ¬ 
            {name:theName, creation date:creationDate, modification date:modDate, folder:folderFlag, alias:aliasFileFlag}  
        if not folderFlag then 
            set infoRecord to infoRecord & {file creator:theCreator, file type:thetype} 
        end if 
        return infoRecord 
    end try 
end info for

もし、info for コマンドでerrorが起きたら、Finderにある程度肩代わりしてもらうわけです。上記の例ではFinderを使って、完全にinfo for コマンドを再現できていませんが、完璧にするのはかなり努力が必要なので、上記のスクリプトで満足できない時は、とっととなんらかのOSAXを探した方が良いかもしれません。いや、むしろ初めからそうすることをお薦めします。


This page was last built on Wed, Feb 17, 2016 ; 11:07:51 AM . Thanks for checking it out!