• ベストアンサー

フォルダを開くと時間が現在の時間になってしまいます

OS10.6.8です。 フォルダを開いただけで、変更を加えていないのに「変更日」の日付が、現在の時間に変更されてしまいます。 これを元の時刻に戻せるパッチだったかスクリプトだったかがあったと思うのですが、 どなたかご存じないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#250373
noname#250373
回答No.3

ご希望の処理が出来るAppleScriptで作ってみました。 OS9の頃は「フォルピタ!」を使って同様のことをやってましたっけ^-^; まさか自分で同様のスクリプトを作るとは、当時想像すらしませんでした… AppleScript様々です^-^ 一応使い方を書いておきます。 「ユーティリティ」フォルダに入っている「AppleScript エディタ」を起動して、新規(コマンド+N)、 開いたウィンドウに以下のスクリプトをコピペし、実行ボタンを押して下さい。 フォルダの指定を求められますので、「変更日を修正したいフォルダ」を指定してやれば、中に入っているファイルやフォルダの日付の中から一番新しい日付を自動選択して、変更日を修正します。 なお、このスクリプトを「アプリケーション形式」で保存すると、 ドロップレットとしても動作します(=アプリに対象フォルダを放り込むと一括処理します)。 お役に立てば幸いです^-^ この文章より下の内容をAppleScript エディタにコピー&ペーストして下さい。 (* フォルダの変更日をフォルダ内のファイル/フォルダの最終変更日に合わせるAppleScript 動作確認:OSX10.6.8, 作成:2013.3.29, 作成者:w6o6n OKwave,質問:No. 7934539で公開。 使い方:起動して「変更日を修正したいフォルダ」を指定するか、drag&dropします。 中に入っているファイルとフォルダの変更日をチェックし、最新の日時を抽出し、フォルダの変更日を書き換えます。 .DS_storeファイルといった不可視ファイルは対象にしません。 Scriptを一部書き換えれば、フォルダを対象外にする事も出来ます(スクリプトの注釈参照) なおフォルダ内のフォルダに対しては、変更日を合わせる処理を行いません。 *) --エディタで起動、もしくはダブルクリックで起動した時はフォルダ1コずつ処理 on run tell application "Finder" AnnounceDialog() of me set mifold to (choose folder) as alias set dialogEnd to SetNewestTime(mifold) of me --処理の正否を通知 display dialog dialogEnd end tell end run --ドロップレットで起動した場合は複数のフォルダでも一括処理 on open (someFolders) tell application "Finder" --複数のフォルダをdrag&dropで処理できるようにリストを作成 set someFolders to someFolders as alias list --エイリアスにキャストし直さないと動作しない AnnounceDialog() of me set aCountDown to count of someFolders repeat with mifold in someFolders SetNewestTime(mifold) of me end repeat --処理の正否に関わらず、終了を通知 display dialog "処理が完了しました!うまくいっているかご確認下さい" end tell end open --次の作業内容をお知らせ on AnnounceDialog() tell application "Finder" set dialog2 to "これはフォルダの変更日=中のファイルやフォルダの最終変更日に合わせるスクリプトです。" & return & "処理しますか?" display dialog dialog2 buttons {"Cancel", "Go!"} default button 2 end tell end AnnounceDialog --ファイルリストから一番新しい変更日時を選び、フォルダの変更日に設定する on SetNewestTime(mifold) tell application "Finder" --指定フォルダ内のファイルとフォルダのリストを作成。 set aFolderContents to {} try --.DS_storeなどの不可視ファイルは対象外。フォルダは一応対象にしている。下層のフォルダまでは対象にしない。フォルダを対象外にしたければ、以下の"item"を"file"に書き換える。 set aFolderContents to (every item whose name does not start with ".") of mifold as alias list end try --空フォルダだったら処理せず終了。 if aFolderContents = {} then set dialogEnd to "Empty folder. The process was canceled" return dialogEnd end if set aNewestDate to "" repeat with ObjFile in aFolderContents --フォルダ内のアイテムの変更日を取得、最新日時を保持 set objdate to modification date of ObjFile if aNewestDate = "" then set aNewestDate to objdate else if aNewestDate < objdate then set aNewestDate to objdate end if end repeat set (modification date of mifold) to aNewestDate set dialogEnd to "フォルダの変更日を修正しました!" return dialogEnd end tell end SetNewestTime

Chorico
質問者

お礼

質問してからかなり日にちがたって、あきらめていたのですが、すごく助かります!ありがとうございます♪ 試してみましたがバッチリでした! OS9の頃はいろいろ便利なものがあって、同じものをといろいろ探してるのですが、スクリプト様はすばらしいですよね~。 自分自身は組めないので、あちこちで検索してお世話になっております。

その他の回答 (2)

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

そんな情報もDS storeに入ってるのかな? だったらDS storeでググるとたくさんあります。 Onyxとかでもいいかも。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

そんなことあり得ないので根本から治さないとダメでしょう。

Chorico
質問者

補足

見て頂いてありがとうございます。 以前、このスクリプトだかパッチだかを持っていたのですが、名前を忘れてしまったんです。 事象的には、 http://okwave.jp/qa/q5640564.html こちらの方と同じです。

関連するQ&A