Mac OS 関連情報

更新日:2002年02月13日

フォルダ同士の更新コピー

“フォルダ同士のコピー”というのは、なかなか自分のやりたいようにできない場合が多いですね。そんなときにAppleScriptが大活躍します。

Mac を使っていてときどき“面倒だな~”って思うことがあります。
僕の場合は、“フォルダ同士の上書きコピー”です。

Windows であれば、「・・・同じ名前の場合、新しいファイルで上書き・・・」というメッセージが出で処理を選択できるのですが、この下にさらにフォルダがあると何度もこのメッセージがでるため、あまり使い勝手がよくありません。

しかし、Mac OS 9 / Mac OS X ではフォルダを上書きした場合、フォルダの入れ替えになりますので、Windowsのように中身をマージしません。

でも、こういう場合、Mac ならAppleScriptがあるんです。

--- Script コード ---
on run
(* 2つフォルダを選択してcopyFolder という処理を行います *)
set aFolder to choose folder
set bFolder to choose folder
copyFolder(aFolder, bFolder) of me
end run

on copyFolder(aFolder, bFolder)
tell application "Finder"

set fileList to get every file of aFolder
set folderList to get every folder of aFolder
(* まずは、フォルダ以外でコピー作業 *)
repeat with afile in fileList
try
(* 重複があるとここでエラーになる *)
duplicate afile to bFolder
on error
set tfile to item (name of afile) of bFolder

(* ここがポイント ファイル同士の日付けの比較 *)
if (modification date of afile) > (modification date of tfile) then
duplicate afile to bFolder with replacing
end if
end try
end repeat
(* フォルダのコピー作業です。 コピーで重複エラーになるということは同じ名前のフォルダがあるということなので、そのフォルダとコピーしようとするフォルダでさらに中身のコピー作業をします。 *)
repeat with aFolder in folderList
try
duplicate aFolder to bFolder
on error
(* サブフォルダをコピーしたくない場合は、以下の2行を削除します。 *)
set tfolder to item (name of aFolder) of bFolder
copyFolder(aFolder, tfolder) of me
end try

end repeat

end tell

end copyFolder
--- Script コード ---

以上の Script コード をコピーして、“スクリプト編集プログラム(Script Editer)注1 ”にペーストし、ファイル - 保存 しておきます。
動作を確認したい場合、“スクリプト編集プログラム”上で 制御 - 実行 を行ってください。

注1 Mac OS 9 の場合、Applications (Mac OS 9) の中のApple エクストラ:AppleScript の中にあります。Mac OS X の場合、/Applications/AppleScript/ の中にある、Script Editer が同じアプリケーションです。

1 2
  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

木下 幹司

パソコンとの付き合いは20年以上。最初はWindowsを使っていたが、務めていたソフトウェア開発会社…

続きを読む

All About Good Answers Topics

回答募集中のトピック(お題)

回答できるものを探そう Good Anwsersトップへ
今なら最大10,000円の回答キャンペーン実施中!

人気Mac OSの使い方ランキング

Powered by 価格.com

おすすめ記事

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック