ブックビューア(6) 本棚表示モードの操作

※本を複数登録したサンプル画面
基本操作
キー操作
本棚情報ウィンドウ

登録している本のパスやキャッシュディレクトリの確認の他、パスの変更操作を行うウィンドウです。
本を登録した後、本のファイルを移動したいとき使用します。
現在設定されている本のファイル(もしくはディレクトリ)の場所と、キャッシュディレクトリの場所が確認できます。
パスが表示域をはみ出る場合最後の方を表示するようにしています(キャレットがあるときカーソルキーでスクロール可)。

このウィンドウは赤ライン上下で機能が別れていて、上は選択したアイテムに対する操作、下はこの階層もしくはこの階層以下全てに対する操作になっています。
選択した本のパス変更

事前にパスの変更先に本のファイルを移動しておきます(コピーでも可)。移動先のパスにファイルが存在しないとエラーになります。

本のファイルをドラッグ&ドロップするか、手動で入力した後変更ボタンを押します。

正常に終了した場合、キャッシュディレクトリの表示が変更されます。
キャッシュディレクトリの名前は、本のパスによって自動的に算出され手動での変更はできません。
キャッシュディレクトリのリネーム時に、既に同じ名前のディレクトリが存在していると失敗します。メニューのキャッシュチェックを使うか、手動で削除する必要があります。
本のパスを一斉に変更
本の格納ディレクトリをR:\本からR:\本2に変更したいとします。
事前にR:\本2に本のファイルを全て移動しておきます。
置換開始する階層であればどの本でも良いので適当に選んでf4を押してウィンドウを表示します。

今回の場合、本を本2に置換したいので、テキストボックスに入力後置換ボタンを押します。本棚全ての本を対象にしたいので本棚を辿る設定をしています。
正常に置換できた数が表示され終了です。
置換対象が見つからなかった場合正常に終了しますが、成功数は0となります。
エラーが出た場合
置換先のファイル・フォルダがない、キャッシュディレクトリがリネームできない等の場合エラーが発生し、その時点で処理は終了します。
置換完了したものと置換できなかったものが混在する状態になります。
エラー原因を対処した後、再度置換を行いますが2度目は置換文字列も注意が必要です。
置換失敗したパスはそのままですが、成功したものはR:\本2に変わっています。
その状態でまた本、本2の置換を行うとR:\本2をR:\本22と置換してしまい上手くいきません。
なので置換文字列はR:\本とR:\本2のように長くした方が間違いがありません。
本棚ファイルの登録が壊れたときの対処

置換エラーの発生を繰り返すと、ファイル情報がちぐはぐになってしまうことがあります。キャッシュを読み込めていない状態のとき上の画像のようになります。
手作業で修正することもできますが、簡単な対処法としては
- 本棚ファイル(.bsf)のバックアップを取っておく…キャッシュディレクトリ名が既に変更されている場合、本棚ファイルを元に戻してもキャッシュが読めません。その場合は3と合わせて実行する必要があるかも知れません。
- おかしくなった本を削除して登録し直す…簡単ですがページ情報などは失われ時間がかかります。
- 不要キャッシュを削除した後、キャッシュを再構築する…これも時間がかかりますがページ情報などは失いません。
等が考えられます。パス変更は面倒なことになる可能性があるので、なるべくなら変更しない方が良いでしょう。
キャッシュディレクトリの引っ越し
キャッシュディレクトリ全体の引っ越しを行う場合は、移動先にディレクトリを移し設定のキャッシュディレクトリを変更します。
こちらも設定変更の前にディレクトリを作成しておく必要があります。
本の登録詳細

画像ファイルだけが入っているもの
このzipファイルが本として登録されます。これが基本の形です。

zipファイル内にディレクトリや画像ファイル以外のファイルがあるもの
画像以外のファイルやディレクトリは無視されてzipファイルが本として登録されます。
ページ以外の画像やファイルもzipにまとめておきたい場合は、ディレクトリに入れておくと都合が良いです。

zipファイル内に画像ファイルがないもの
本として登録されません。1冊も登録がなかった場合エラーメッセージが出力されます。
1冊以上登録完了していて、登録されないケースがあった場合は何も出力されません。

画像ファイルだけが入っているもの
このディレクトリが本として登録されます。

ディレクトリ内にzipでない画像ファイル以外が存在する場合
そのファイルは無視され、ディレクトリが本として登録されます。

ディレクトリ内に画像ファイルと本として登録できるzipが存在する場合
この場合ディレクトリは本棚として登録され、zipのみ本として登録されます。
本棚の中には本棚か本を格納することができ、zipは本にあたるので登録されます。
一方、画像ファイル単体では本として登録できないので、その他のファイル同様に無視されます。

登録するとこのようになります。
このzipが登録できないファイルだった場合、何も登録されません。

ディレクトリの中にディレクトリがある場合
まずDir0は本棚として登録され、それにより画像ファイルは無視されます。
そしてDir1は本として解釈できるならDir0の中に本が1冊ある形になり、中にzipファイルの本があるならばDir1は本棚として登録され、更にその中にzipファイルの本が登録されます。
ややこしいので
ディレクトリは本棚になるように、本は全てzipで固めて扱ったほうが分かり易いです。