« ◆侵入禁止は「路面標識」で示すべき | トップページ | ◆鳥が文法を持つ論の無理 »

◆差分ファイル転送式フォルダ同期ツール

備忘録メモ書きです。GUIを追加した時点で記述を改めます。

 変更ファイルのみ転送するフォルダ同期ツール

変更ファイルのみ転送するフォルダ同期ツールhiFolderSyncを作成しました。

予め転送元、転送先をスキャンし拡張子毎の情報を表示すること、同一サイズのファイルについてはタイムスタンプの置き換えだけを行うことも可能であることが大きな特徴です。

次の機能を持ちます。

  • 変更のあるファイルのみ置き換え
    • サイズが異なる場合は変更ありとし置き換える
    • 転送元ファイルの更新時刻が転送先より新しくサイズが同じ場合次の選択が可能
      • 置き換える
      • タイムスタンプのみ転送元に合わせる
  • 転送元にないファイルは転送先から削除(指定可)
  • 転送先,転送元のフォルダ数、ファイル数、サイズ数を表示
    • フォルダ数
    • 拡張子別ファイル数とサイズ
  • 操作対象となるフォルダ/ファイルの個数とサイズを表示
    • 転送先から削除するファイル
    • 転送先にコピーされるファイル
    • 置き換えるファイル
    • タイムスタンプのみ変更するファイル
  • 情報を表示後、確認待ちとする

画面には次のような表示が出ます。ここではm4a(ALAC)が14個,flagが39個作られ,flac81個が置き換えになっています。この他いくつかの画像ファイルなどがあり計144個のファイルが転送対象となっています。

 
ソース側フォルダ :O:/MUSIC
  フォルダ 1289個
  ファイル 18605個
      .txt       1個    2.2K bytes      (2,247)
      .mp3       3個   20.5M bytes      (20,517,946)
      .jpg    2586個   70.9M bytes      (70,862,587)
      .zip       5個   27.2M bytes      (27,190,726)
      .m4a   15146個  105.4G bytes      (105,362,972,354)
      .m3u8     20個  547.4K bytes      (547,370)
      .flac    843個  112.3G bytes      (112,297,186,196)
      .xml       1個   29.0M bytes      (29,021,446)
変更先側フォルダ :H:/MUSIC
  フォルダ 1289個
  ファイル 18569個
      .txt       1個    2.2K bytes      (2,249)
      .mp3       3個   20.5M bytes      (20,517,946)
      .jpg    2589個   68.2M bytes      (68,198,868)
      .zip       5個   27.2M bytes      (27,190,726)
      .m4a   15146個  105.1G bytes      (105,129,001,630)
      .m3u8     20個  547.4K bytes      (547,370)
      .flac    804個  105.2G bytes      (105,167,559,941)
      .xml       1個   29.0M bytes      (29,020,705)
---------------
削除フォルダ 3個
削除ファイル 22個
      .jpg       8個  116.9K bytes      (116,942)
      .m4a      14個   71.0M bytes      (70,982,774)
生成フォルダ 6個
生成ファイル 58個    7.4G bytes (7,437,360,414)
      .jpg       5個    2.8M bytes      (2,780,661)
      .m4a      14個  305.0M bytes      (304,953,498)
      .flac     39個    7.1G bytes      (7,129,626,255)
置換ファイル 86個    4.9G bytes (4,873,435,787)
      .txt       1個    2.2K bytes      (2,249)
      .jpg       3個  971.0K bytes      (971,039)
      .flac     81個    4.8G bytes      (4,843,441,055)
      .xml       1個   29.0M bytes      (29,020,705)
タイムスタンプ変更ファイル 0個
保持ファイル 18461個
      .mp3       3個   20.5M bytes      (20,517,946)
      .jpg    2578個   67.1M bytes      (67,110,887)
      .zip       5個   27.2M bytes      (27,190,726)
      .m4a   15132個  105.1G bytes      (105,058,018,856)
      .m3u8     20個  547.4K bytes      (547,370)
      .flac    723個  100.3G bytes      (100,324,118,886)

全転送ファイル 144個   12.3G bytes      (12,310,796,201)
---------------

置き換えを実行しますか? y/n y
---------------
1/144 01 バッハ_ リチェルカーレ (ヴェーベルン編曲によるオーケストラ版).m4a	 39.7M bytes	(39,697,266)
*********** 0:26.688
2/144 02 ヴェーベルン_ 弦楽四重奏曲 (1905) (ポッペン編曲による室.m4a	 81.1M bytes	(81,139,554)
*********** 0:44.110
・・・省略・・・
141/144 Bruckner  Symphony No. 4,  Romantic _04_Symphony No. 4 in E-Flat Major, WAB 104  Romantic   IV. Finale (Bewegt, doch .flac	443.7M bytes	(443,701,983)
*********** 4:01.899
142/144 Bruckner: Symp~No. 4, ”Romanti.jpg	364.0K bytes	(364,036)
*********** 0:00.220
143/144 info.txt	  2.2K bytes	(2,247)
 0:00.023
144/144 ライブラリ.xml	 29.0M bytes	(29,021,446)
*********** 0:15.718

---
1:52:25.836
 

転送中はファイル名とサイズ。その下に進行状態をファイル全体で十個の*で表す表示が出ます。

 コマンド形式

GUI版は検討中です。現在CLIコマンドでのみ動作します。次の引数があります。

usage:
 hiFolderSync -src 転送元フォルダ -dst 転送先フォルダ
              [-timestamp] [-keep] [-verbose] [-detail]
              [-help] [-R] [-y]
 転送元フォルダの内容に転送先フォルダを合わせる
parameters:
 -src 転送元フォルダ このフォルダの内容がコピーされる
                     省略するとguiが起動される
 -dst 転送先フォルダ このフォルダにコピーされる
                     省略するとguiが起動される
[-timestamp]         タイムスタンプが転送元より転送先が古い場合
                     同一サイズファイルは上書きせずタイムスタンプを変更する
                     デフォルトではファイルを置き換える
[-keep]              srcにないdstのファイルを保持する
[-continue-on-error] I/Oエラーが起こっても続けるcheckのみ行う
[-R]                 実際の変更は行わず、手続きのみ表示する(リハーサル)
[-verbose]           処理経過を表示する
[-detail]            処理経過を細かく表示する
[-y]                 置き換え確認を行わない(y応答相当)
[-help]              このメッセージを出す

現時点では呼び出しは.batにしてあります。必要に応じ-src,-dstを変更してください

set MAIN=hiFolderSync
set JAVA=java.exe
"%JAVA%" -jar %MAIN%.jar -src O:/MUSIC -dst F:/MUSIC -out kekka.txt -timestamp

 ダウンロード/ビルド

hifoldersync.zip をダウンロードし、展開します。次の内容を持ちます。

A01_buikd.bat     ビルド
A05_run.bat       実行
hiFolderSync.jar  ビルド結果の実行jar
hiFolderSync.java ソース
hiNote_3_11.jar   ライブラリ
hiSwing_3_11.jar  GUIライブラリ(未使用)

A01_buikd.batでビルドするとhiFolderSync.jarが作成されます。

 

|

« ◆侵入禁止は「路面標識」で示すべき | トップページ | ◆鳥が文法を持つ論の無理 »