プログラム学習室 http://studyhallweb.com/

Dart backup

はじめに

このプログラムはDartの学習を兼ねて、自分の役に立つツールとして作成したものです。
自分自身のPC環境でしか動作確認はしていません。もし、ダウンロードして使ってみて不具合が発生しましても保障できませんのであしからず。

機能概要

指定のディレクトリから指定のディレクトリにバックアップをとります。
自分が普段使うために作りました。
これもDartのプログラムなのに完璧なオフラインプログラムです。

Backup Rule

バックアップ対象をA、バックアップ先をBとしたとき(通常モード)
  • AがBになければコピー
  • AがBより新しければ上書きコピー
  • AになくBにだけあればBを削除(ディレクトリも対象)
コントロールファイル(hi_sync_type1 という名のファイル)があるとき
(コントロールファイルが存在するディレクトリおよびサブディレクトリ以下の全てのファイルに適用される)
  • AがBになければコピー
  • AがBより新しければ上書きコピー
  • AになくBにだけあればBからAにコピー
  • AよりBが新しければBからAにコピー

hi_sync ライブラリの使い方

バックアップ対象のディレクトリパスを C:¥Data
バックアップ先のディレクトリを D:¥Backup
としたとき、
hiSync bakSync = new hiSync('C:¥Data', 'D:¥Backup');
bakSync.sync();
で、バックアップが出来ます。

ログファイルはデフォルトで baksync.log がカレントディレクトリにできますが、-log オプションで任意の位置に指定することも出来ます。
オプションは複数あるため、List<String>で渡してください。
List<String> options = ['-log', 'C:¥Work¥baksync.log'];
hiSync bakSync = new hiSync('C:¥Data', 'D:¥Backup', options);

オプションには次のものがあります。
-log logfilename ... ログファイルの指定
-logAppend ... ログを追記モードにします
-nocopy directory ... 指定のディレクトリをコピーしません

-nocopy は Dart の package があちこちにコピーされるため作ったオプションです

ソースファイル