このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Apple Scriptによるファイル日付更新について

発言者:Nana
( Date Tuesday, August 24, 1999 11:46:57 )


いつもお世話になっています。

Apple Scriptで、とあるファイルの日付を現在の日付にしようと
思っているのですが、なぜか現在の日付になってくれません。

property myFile : "Macintosh HD:WebSTAR2.0J:<<ファイルへのパス>>"
setFileInfo myFile modification date current date

あまりApple Scriptの事も分かっていないので自分で適当に
書いてみたのですが、この記述だと間違っているのでしょうか?
エラーメッセージも出ないのでいけてるかと思いきや・・・謎です。

よきアドバイスをよろしくお願いします。

たむら さんからのコメント
( Tuesday, August 24, 1999 17:56:42 )

>Apple Scriptで、とあるファイルの日付を現在の日付にしようと
>思っているのですが、なぜか現在の日付になってくれません。

 名著「AppleScriptミニミニリファレンス」によると、
modification dateはRead Onlyの属性だそうです。
 というわけで、少なくとも標準のAppleScriptやFinderの
命令では、書き換えることはできないと思います。

 ちなみに、Nanaさんの書かれたスクリプトが動かないのは、
私の環境が7.6.1だからなのかなぁ・・・??

田中求之 さんからのコメント
( Tuesday, August 24, 1999 20:52:58 )

>setFileInfo myFile modification date current date

この部分は osax を使っていますよね? この場合、osax はフルパスを
サポートしているのであれば、このままで動くと思うのですが、そうで
ない場合には、エイリアス型か fss 型にする必要があります。

setFileInfo file myFile modification date current date
setFileInfo alias myFile modification date current date

のどちらか(コンパイル時にファイルが存在しないなら fss 型しか使えませ
ん)にすると動くのでは?

なお、素直に Finder を使えば変更できますよ。

tell application "Finder"
  set modification date of file myFile to current date
end tell


たむら さんからのコメント
( Tuesday, August 24, 1999 21:46:56 )

>なお、素直に Finder を使えば変更できますよ。
>
>tell application "Finder"
>  set modification date of file myFile to current date
>end tell

 あらっ・・・そうなんですかぁ〜〜〜(^^;)>田中先生
しかし、うちでは動かない・・・ってことは、OS8以上なんでしょうか??

>  set modification date of file "Delta-S4:インストーラのログファイル" to date "1999年 8月 24日 火曜日 21:47:47"
>    --> Finder got an error: Can't set modification date of file "Delta-S4:インストーラのログファイル" to date "1999年 8月 24日 火曜日 21:47:47".

だそうです。

田中求之 さんからのコメント
( Tuesday, August 24, 1999 23:28:07 )

>うちでは動かない・・・ってことは、OS8以上なんでしょうか??

 あ、そうかもしれません。8.6 でしか試してないので。

なお、Tanaka's osax 2.x の場合は、

MT Change File Info yourFile modification date current date

で変更できるようになってます。

Nana さんからのコメント
( Wednesday, August 25, 1999 09:48:03 )

皆さんレスありがとうございます。

Finderを使う方法でできました。田中先生、ありがとうございました。

ところで

>setFileInfo file myFile modification date current date
>setFileInfo alias myFile modification date current date

こちらが動きません。。。OSは8.0です。

実は以前にeasyBBSの件で質問させていただいたのですが
その時に作った「起動後、自動的に終了しない」で保存した
bbs.acgiが勝手に終了してしまったり、
スクリプト編集プログラムでコンパイルしようとすると
「OSAに誤りがあり、コンパイルできませんでした」とエラーが
出たりするので、どうもosaxが怪しいと思いTanaka's osaxの
最新版(1.3)をインストールしたのですが、状態が改善されません。

便乗質問で申し訳ないのですが、他に何か原因が考えられますでしょうか。
たびたびすみませんが、どうぞよろしくお願いいたします。