日付で分類 version 0.6.0 (C)yjo 2002-2008

安直極まりないプログラム名ですし,試作の域を出ないバージョンではありますが...
いちおう Vector で公開してもらってますが,最新版とかテスト版とかはここの方が先に出ます.
Vector ははっきり言って更新手続きがめんどくさいので,マイナーチェンジのときは更新しないときもあります.

[まずはお約束: 無保証と無責任]
このソフトは 無料で自由に使っていただいてかまいません が,その出来栄えや動作結果には一切の保証はいたしかねます.
このソフトを使った上で発生したなんらかの損害や障害についても,作者は一切関知しません し,もちろん責任も持ちません
ソフトウェアのバグや使用感についての報告は常時歓迎いたします.
配布等の制限もとくにしませんが,お金を取ったりしてはだめですよ.

[ダウンロード]
非圧縮の exe ファイルです.セキュリティソフトに怒られちゃうかも? こちらから.
旧版はこちら: Ver.0.1.3Ver.0.2.2Ver.0.2.5Ver.0.2.7Ver.0.3.0Ver.0.3.2Ver.0.4.5

[雑誌収録等]
エンターブレイン フリーウェア5000 (2004年4月) (Ver.0.3.2)
晋遊社 ダウンロードBB 2003年10月号 (Ver.0.3.0)
晋遊社 iP! 2003年9月号 (Ver.0.3.0)
宝島社 MS Officeツールと無料ソフトで仕事力アップ! (2003年6月) (Ver.0.3.0)
エンターブレイン フリーウェア4000 (2003年3月) (Ver.0.2.3)
エンターブレイン Windows Power JUMBO 2003年3月号 (Ver.0.2.2)

[何をするソフトか]
というと,ファイルをそのタイムスタンプ (基本は最終更新日時) によって分類し,日付を名前とするフォルダに分類していく,というものです.たとえば2002年10月25日に作成されたファイルを20021025というフォルダに移したりします.フォルダのパターンは何種類か用意されています.ファイルの名前に日付情報を加えたりもできます.とにかく一度動かしてみれば,何をやるのかはわかると思います.

たぶん,以下の説明読むより,やってみた方がわかりやすいかと.

長いファイル名と Win32API が使えることが前提なので,Windows95 以降で使えます(そのはず).
ただし Windows2000 と XP でしか動作確認はしていません.
ME とか 95 は何か予期しないことがおこりそう...

もともとデジカメファイルの分類用に作ったものなので,デジカメのファイル形式として広く使われている Exif ファイルの場合にはファイル本体に埋めこまれている日付情報 (撮影日時) を優先します.
デジカメの機種名をファイル名に入れることができます.

[どういうときに使うのか]
何に使うかは使う人の自由なのですが,もともとはデジカメのファイルを整理するために作りました.デジカメのファイル名のつけ方は機種によってバラバラですが,単に連番になっているだけで,ファイルを見ただけではいつ撮ったのかもわからないものがあります.もちろん,タイムスタンプを見ればいいのですが,いちいち自分で確認したりせずに,日付ごとに分類したりできたら便利だろう,ということです.

また,デジカメプリントで印画紙に焼いてもらう場合,通常裏面にファイル名が入ります.日付情報のファイル名にしておけば,オートデート機能の代わりにもなります.
最近はデジカメプリントで日付を焼き込んでもらうのも手軽にできるようになりましたが.

そもそも,CASIO の XV-3 というデジカメは撮影日ごとに別フォルダにわかれ,日付+連番というファイル名になっていて,整理が楽だと思っていたのが,CANON の PowerShot S30 を買ったら,ただの連番のファイル名になってしまって,不便に思ったので作ったものです.
この辺は,Exif という規格のせいらしいので,しょうがないともいえます.

日付情報としてはタイムスタンプを基本としていますが,Exif フォーマットのファイルの場合は,Exif ヘッダから撮影日付情報を探し出してそれを使用するようにしています.そのため,添付ファイルなどで送られてきたデジカメデータなども,正しく撮影時刻で分類できます(もちろん Exif ヘッダを失うような加工をしていない場合に限ります).
CASIO XV-3,CANON Powershot S30,Olympus C-1Z および C-2,同 E-1,Pentax Optio-S,同 *istD,Sony Cybershot (のどれか) の JPEG データについては実際に問題ないことを確認しました.また Pentax *istD/DS/DL/DS2/DL2,Pentax K10D/20D/100D/200D (K110D も動くと思うが未確認) と Nikon D70 (D70s と D50 も動くと思うが未確認) の raw ファイルも内部の日付情報を参照します.その他のデジカメの raw ファイルについてはデータフォーマットが確認できないのでファイルのタイムスタンプで処理されます.raw ファイルをご提供いただけるなら,(解析できるものであれば) 対応したいと思っていますので,ご一報ください.なお,raw ファイルそのものをいきなりメールで送るのはくれぐれもご遠慮ください
ただし,Canon PowerShot S30 の crw ファイルのように,撮影時に生成されるサムネールファイルに情報が書かれ,raw データ自体には何も記録されていないものもあります.

[インストールとアンインストール]
Visual Basic 6.0 SP5 で作っていますので,対応するランタイムライブラリが必要です.Vector などから取ってきてインストールしておいてください.
bunrui.exe が本体です.適当なフォルダに置いてください.どこでもかまいません.デスクトップにショートカットを作っておくと便利でしょう.設定等の保存用に bunrui.ini というファイルが本体と同じ場所に作られます.「実行時エラー '380'」がでる場合は,このファイルを同じフォルダに置いてみてください.アンインストールは bunrui.exe と bunrui.ini を削除するだけです.

[使い方]
デジカメの画像ファイルを分類する場合について説明します.すぐ下にあるスクリーンショットの画面も参照してください.
  1. デジカメのメモリカードから,ハードディスクの適当なフォルダにデータをコピーしておきます.作業フォルダとして専用の場所を決めておくといいでしょう.一度に仕分けできるファイルの数の上限は約32000個です.
  2. プログラムを起動します.あるいは分類対象のフォルダか,そのフォルダに含まれるファイルのどれかを bunrui.exe またはそのショートカットにドラッグアンドドロップで渡してもかまいません.
  3. 初回起動時は,起動フォルダの内容と詳細設定画面が表示されています.1. でファイルをコピーしたところへ移動してください.左側のフレーム (スクリーンショットの(1)) 内に,対象フォルダ(あるいはそのフォルダ内のファイルのどれか)をエクスプローラからドロップしてもかまいません.ファイル/フォルダをドラッグアンドドロップで渡した場合は,初回からそのフォルダを表示します.
  4. 分類先にファイルを「コピーする」か「移動する」かを選びます.移動する場合は「ファイルを移動する」 (スクリーンショットの(10)) チェックボックスにチェックを入れます.
  5. 分類結果の置き場所を選びます (スクリーンショットの(11).詳細は後述).
  6. ディレクトリパターンを選びます (スクリーンショットの(12).詳細は後述).
  7. 名前の付け替えパターンを選びます (スクリーンショットの(13).詳細は後述).
  8. 「分類実行」ボタン (スクリーンショットの(3)) をクリックすると,選択したパターンにしたがって,ファイルが仕分けされ,分類先のフォルダに「コピー」または「移動」されます.基本的に分類対象フォルダに存在するすべてのファイルが分類されます.
  9. エクスプローラなどで,分類されたファイルを整理用のフォルダに適宜移動したりして整理します.「このフォルダを開く」(スクリーンショットの(7)) ボタンをクリックすると,エクスプローラでそのフォルダが開かれます.
  10. 「さようなら〜」(スクリーンショットの(6)) ボタンをクリックすると終了します.

[操作画面の説明]
スクリーンショット スクリーンショット

[分類対象のあるフォルダ] (スクリーンショットの(1))
分類対象となるファイルのあるフォルダを指定するフレームです.このフレーム内にエクスプローラなどからファイルまたはフォルダをドロップしてもそのフォルダを選択できます.もちろんスクリーンショットの(2)の部分を操作してフォルダを選択してもかまいません.スクリーンショットの(4)には分類対象となるファイルの名前が表示されます.ここに表示されるファイルはすべて分類操作の対象となります.あるファイルだけを分類する,というような指定はできません.

[ボタン類]
  • 「分類実行」(スクリーンショットの(3)): 分類が実行されます.
  • 「最新の状態に更新」(スクリーンショットの(5)): フォルダやファイルの情報を最新状態に更新します.
  • 「さようなら〜」(スクリーンショットの(6)):「日付で分類」を終了します.最後の状態は保存されます.
  • 「このフォルダを開く」(スクリーンショットの(7)): 表示フォルダをエクスプローラで開きます.
  • 「About...」(スクリーンショットの(8)): 著作権情報などを表示します.
  • 「詳細非表示 <<」(スクリーンショットの(9)): 右半分の詳細設定部分を非表示にします (右側のスクリーンショットの状態).

    [ファイルを移動] (スクリーンショットの(10))
    ここをチェックするとファイルを元フォルダから分類先フォルダに「移動」します.チェックしないときは,「コピー」され,元のファイルはそのまま残ります.同じドライブ内での分類の場合,移動にすると非常に高速に処理できます(ある意味あたりまえ).

    [日付別フォルダ作成場所] (スクリーンショットの(11))
    日付名のフォルダをどこに作るかを選択します.元ファイルのあるフォルダの下に作るか,デスクトップまたはマイドキュメントに「分類」という名前のフォルダを作ってその下に作るか,の3通りから選んでください.

    [分類パターン(分類フォルダ名)] (スクリーンショットの(12))
    月単位分類で2種,日単位分類で3種,計5種類用意してあります.たとえば2002年10月25日というタイムスタンプを持つファイルで,\yyyymmというパターンを選ぶと,作業フォルダに「200210」というフォルダが作られ,そこにファイルはコピーされます.\yymmdd なら「021025」というフォルダが作られ,そこにコピーされます.お好みのパターンを御利用ください.

    [ファイル名変更] (スクリーンショットの(13))
    6種類の選択肢があります.変更されるのは拡張子の前(ベースネーム)だけです.
    変更なし: もとのファイル名のままコピーされます.
    yymmdd+旧ファイル名: もとのファイル名の前に,日付データが付加されます.2002年10月25日のIMG_0001.JPG というファイルなら,「021025IMG_0001.JPG」となります.
    mmdd+旧ファイル名: もとのファイル名の前に,日付データが付加されます.2002年10月25日のIMG_0001.JPG というファイルなら,「1025_IMG0001.JPG」となります.
    yymmdd+####(連番): もとのファイル名とは関係なく,日付データに4桁の連番が追加されたファイル名に変更されます.たとえば,0210250001.JPG のようになります.連番は,そのとき仕分け対象になったファイルの,タイムスタンプの時刻順に機械的に割り振られます.また,もとが同一ファイル名で拡張子のみが違う場合 (正確にはそれにくわえてタイムスタンプも同じ.たとえば動画ファイルとそのサムネールの場合の,MVI_0001.AVI と MVI_0001.THM) は,連番の番号が同じになり,10250001.AVI と10250001.THM のようになります.
    mmddhhmmss: もとのファイル名とは関係なく,月日と時刻(時分秒)を示す10桁の数字のファイル名に変更されます.たとえば,1025101232.JPG (10月25日10時12分32秒のタイムスタンプ) のようになります.
    yymmddhhmm: もとのファイル名とは関係なく,年月日と時刻(時分)を示す10桁の数字のファイル名に変更されます.たとえば,0210251012.JPG (2002年10月25日10時12分) のようになります.
    時刻情報を使う場合,連写したときのように時刻情報が近接あるいは一致するケースに注意してください.コピー先に重複する名前のファイルがあった場合と同様の処理 (後述) が行われます.

    スクリーンショットの(14) のところの設定は,少々マニアックです.
    ファイル名の小文字化は,ファイル名を変更しない場合でもそのまま小文字にします.ファイル名全体,拡張子のみのいずれかを選んで,チェックを入れてください.このチェックがないと,元のファイル名がどうであったかで,生成ファイル名の大文字小文字が決まります.
    「年4桁 (yyyy)」はファイル名に使われる年表示を 2004 のような 4桁表示にします.
    「カメラ情報の付加」は,デジカメの機種名がファイル内容からわかる場合に,その機種名をファイル名の末尾に追加する機能です.0405011214[PENTAX istD].jpg のように機種名が入ります.このとき,* のようにファイル名に入れられない文字は削除されます.Exif タグの中味を読み出して機械的に処理しているだけなので,機種によっては変な書き方になってしまうかもしれません.

    [ファイル名の重複処理] (スクリーンショットの(15))
    いずれの場合も,分類先のフォルダにすでに同名のファイルがある(名前を付け替えるときは,変更後の名前と同じファイルが存在する)場合には,ファイル名に[001]のような3桁の括弧つき連番かa,b,c などのアルファベットが付加されて区別できるようになっています(例: IMG001.JPG と IMG001[001].JPG,IMG001a.JPG).どちらのパターンで重複ファイル名を処理するかを設定します.なお,ファイルとしてほんとうに同じものであるかどうかは,別に確認する必要があります.重複ファイル名があっても警告などは出ません.また,重複チェックは大文字小文字が区別されません.つまり,001.JPG と 001.jpg は同じものみなされます (これは Windows の仕様です).通常はあり得ないと思いますので,999を越えるときはエラーが出て処理が止まります.

    [注意事項]
    このプログラムは画像ファイルを別のフォルダに「コピー」するのが基本です.この場合,もとのファイルは手動で消すなりなんなりしないといけません.「ファイルを移動する」のチェックボックスにチェックが入っているときは移動になりますが,不幸にして移動中にファイルが消えるようなことになっても作者を責めないでください (危ない処理をしているわけではありませんが,事故はおこりえますよね).
    デジカメのメモリカード上で分類するのは止めましょう.マイドキュメントやデスクトップに分類先フォルダが来る設定を選べばいいはずなんですけどね.


    [未定な予定]
    徒然なるままに.

    [その他]
    Visual Basic 6.0 SP5 / Windows2000 SP3 で作ってましたが,Windows は XP SP1 に変わりました.Delphi で書けばよかったと,ある程度動くようになるまで作ってから後悔.まあいいか.VB2.0 までは結構頭に入ってたんだけど,もう何も頭に入らないからヘルプ引き引き書いてるんで,どっちでも大差ないんだけどねえ...
    つーか,こういうフリーソフトのもっといいの,誰か作って!(^^;
    すでにあるんなら教えてくださいよ〜ん!

    [ご意見等は]
    苦情とかはご遠慮願いたいところですが,一応連絡先は,こちらでございます.
    頻繁にチェックしてるわけでもないので,あんまり迅速な応答を期待しないでね(^^;

    [感謝]
    いろいろとコメントをくれた oz さんに.
    バグ情報をいただいた Hayashi Yutaka 氏に.
    コメントをいただき,さらに Olympus E-1 のデータのテスト情報をいただいた伊藤一宏氏に.

    [変更履歴] (単なる個人的メモです)
    Ver.0.6.0 Pentax K20D/200D に対応.
    Ver.0.5.2 Pentax K100D に対応.未確認ながら,K110D,K10D でも動作するはず.
    Ver.0.5.1 Pentax *istDL に対応.*istDS2/DL2 および Nikon D70s/D50 も未確認ながら対応.
    Ver.0.5.0 D&D 周りのバグ修正.
    Ver.0.4.7 Pentax *istDS の PEF ファイルに対応.
    Ver.0.4.6 Nikon D70 NEF ファイルに対応 (D70 以外の NEF は未対応).「ファイルの移動」をコピーしてから元ファイルを消す方式から,OS の移動機能に変えることで,同一ドライブ内での処理を高速化.
    Ver.0.4.5 詳細表示を前回の状態の保持に.タスクバーへの表示.0.4.3 のオプションの正式導入.
    Ver.0.4.3 ファイル名の年号4桁化オプションとデジカメ名の付加オプションの試験導入(伊藤一宏氏のご提案による).
    Ver.0.4.2 ini ファイルの形式を変更
    Ver.0.4.1 初回起動時以外は詳細設定フレームを非表示に.詳細設定の表示/非表示切り替えボタン
    Ver.0.3.3 Exif/*istD raw の解析を少しまじめにやるようにして,「撮影」時刻のデータを取る様に変更 (伊藤一宏氏のご指摘による)
    Ver.0.3.2 Pentax *istD raw ファイルに対応 (内部時刻を読み出して利用)
    Ver.0.3.1 拡張子の小文字化設定が反映されないときがあるバグのフィクス,重複ファイル名のときの付加文字列に a,b,... を選べるように,拡張子の文字列化のバグフィクス,Exif の判定を変更 (Photoshopなどで Exif を残して再保存したファイルも Exif と判断)
    Ver.0.3.0 ファイルを移動するオプションの追加,「フォルダを開く」ボタン
    Ver.0.2.7 時刻情報をファイル名に加えるオプションを追加 (yymmddhhmm), 分類対象ファイルの上限を約32000個に拡大 (Hayashi Yutaka 氏のご指摘による)
    Ver.0.2.6 時刻情報をファイル名に加えるオプションを追加 (mmddhhmmss)
    Ver.0.2.5 ini ファイルがない場合の不適当な初期設定の修正,Exif ファイルの場合,ヘッダから日付情報を取得するように
    Ver.0.2.4 修正忘れの再修正,ボタンのgif化
    Ver.0.2.3 拡張子の切り出し方法の変更(ベースネーム中にピリオドがある場合に対応),ファイル名,拡張子の小文字化対応
    Ver.0.2.2 公開第2版
    Ver.0.2.1 分類選択肢の整理,D&D対応,重複ファイルの対応(名前のチェック),分類先の置き場を選べるように.
    Ver.0.1.3 公開初版