最近はUSBメモリーやデジカメのSDカードなど、フラッシュメモリー製品を機会が増えています。今回は、これら記録メディア内のデータを自動的にバックアップするツールを作ってみます。メディアをパソコンに挿入したタイミングでバックアップ処理を実行する部分に注目してください。
プログラム~記録メディアを挿入と同時にバックアップ
下記のプログラムを実行しておくと、USBメモリーなどを挿入すると同時にマイドキュメント内に「外部メモリ取込」というフォルダーを作り、そこへファイルをコピーします。コピーが終わると、「ハードウェアの安全な取り外し」ツールを起動します。
#-----------------------------------------------------------------------
# 記録メディアを挿入と同時にバックアップ
#-----------------------------------------------------------------------
保存先トップ=「{マイドキュメント}外部メモリ取込\」
#-----------------------------------------------------------------------
母艦のタイトルは「記録メディアを挿入してください。」
母艦のデバイス挿入した時は
ドライブ=空
使用可能ドライブ取得して反復
対象のドライブ種類をTに代入。
もし、T=「取り外し可能」ならば
ドライブに対象を配列追加
もし、要素数(ドライブ)>1ならば
「どのドライブをバックアップしますか?」をドライブでボタン選択。
ドライブ=それ。
もし、ドライブが空ならば、戻る。
#---------------------------------------------------------------------
# 重複無くバックアップする処理
ドライブの全ファイル列挙
反復
F=対象からファイル名抽出。
対象のファイル更新日時をDに代入。
EXT=対象から拡張子抽出
識別キー1=Dを「yyyy-mm-dd」に日時形式変換
識別キー2=Dを「hhnnss」に日時形式変換
保存フォルダ=「{保存先トップ}{識別キー1}\」
保存先=「{保存フォルダ}{F}.{識別キー2}{EXT}」
もし、保存先が存在するならば、続ける。# 重複は避ける
母艦のタイトルは「コピー中:{F}」
保存フォルダにフォルダ作成。
対象から保存先にファイルコピー。
ここまで。
「コピーが完了しました。取り外しツールを起動します」と言う。
ハードウェア取り外し起動。#
母艦のタイトルは「記録メディアを挿入してください。」
#-----------------------------------------------------------------------
【改造のヒント】
プログラムの上から4行目にある変数「保存先トップ」を書き換えると、保存先のフォルダーを変更できます。
さらに、プログラムの27行目では、ファイルの重複を防ぐために、ファイルの更新日時をコピー先のファイル名に付け加えています。もしも、ファイル名を変えたくない場合は、ここを下記のように修正できます。(ただし、同じ日に同じ名前のファイルを作らないことを前提としています。デジカメのメモリカードなら問題が少ないでしょう。)
保存先=「{保存フォルダ}{F}」