ダブルクォーテーションで囲ったファイルのプロファイルが正常に選択されなかった問題を修正。
抽出ファイルの日付がずれるバグ、上書き確認ダイアログの日付がずれるバグを修正。
文字列の整理を継続中。
1.62追記: ディレクトリを削除した後に新しくディレクトリを作成した場合、 表示ディレクトリの変更の際に保護違反が発生することがあったバグを修正。
ダブルクォーテーションで囲って渡されたファイル名を認識できなかったバグを修正。
文字列とかをリソースに整理。
ファイルの書き込み時に異常エントリが発生することがあるバグを修正。 同時に、異常エントリをクリアするコマンド「エントリの解放」を追加。
ディスクを開いたときのディレクトリツリー読み込み状況を表示するオプションを追加。
ディレクトリツリーの生成時に循環参照が無いかどうかをチェックして無限ループを回避するようにした。
ポップアップメニューに「シェルメニュー」項目を追加しました。 選択項目に対して、Explorerと同じメニューが表示されます。 なんとなく便利です。
クリップボード経由のファイル交換に対応しました。 それに伴って、コピー&貼り付けなど関連するメニュー項目を「編集」として追加しました。 けっこう便利です。
ドラッグ&ドロップでアプリケーションアイコンにファイルを落としたときにちゃんと反応するようにしました。 ひそかに便利です。
FAT32ディスクのアクセスに対応しました。今のところ読み取り専用です。 書き込みはチェックしていないので(チェックできる環境がないのです)使えないようにしています。
WindowsNT/2000で\\.\PHYSICALDRIVEnと\\.\x:のファイルオープンに対応しました。 nには物理ドライブ番号、xにはドライブレターを入力して直接ハードディスクにアクセスできます。 読み取り専用で開かれるので、書き込みは出来ません。 実行するときは上記のように物理ドライブ名をコマンドラインから渡して起動してください。 また、実行時には管理者権限が必要です。
ディレクトリ数が多いとき、ディレクトリの切り替えに非常に長い時間がかかっていた問題を修正しました。 なんでツリービューにはFindItemが無いんだろう??
FATをメモリ上にキャッシュして読み取りを高速化しました。 起動時の空き容量チェックが若干速くなっています。
ドラッグ&ドロップで読取専用ファイルを抽出したときにテンポラリファイルを削除できなかったバグを修正しました。 もしテンポラリフォルダにde_???.tmpというフォルダがあったら全部消しておいてください。 これはDiskExplorerが正しくファイルを消せなかった時の残骸です。
読取専用ファイルを上書き抽出できなかったバグを修正。
深すぎるディレクトリの警告を廃止。
多分誰も使ってなかったというかむしろ知らなかったであろうiniオプションAutoOpenを廃止。
ファイルの移動が出来なかった場合があったバグを修正。
上書きの確認で、新旧ファイルとも同じ日付を表示していたバグを修正。
大きいフォントに関する問題について色々いじってみる。 おそらく修正。
変なファイルを開いたときにゼロ除算が出ることがあるのを修正。
ファイルがドロップされたときにZオーダーが正しく設定されないバグを修正。
[F1]キーによる状況依存のヘルプ表示が各ダイアログで機能するようにしました。
実行時のシステムリソース消費を平均50%削減。
SHIFTキーによる適宜動作変更の機能追加。 それぞれSHIFTキーを押していれば、標準動作やオプションに関係なく次のようになります。
FAT終端以外の障害報告は無かったので無印リリース。
ボタンにショートカットをつけたりタブ順序を直したりしてキーボードとの親和性を全面的に向上させました。
ファイルをダブルクリックしたときに空抽出していたのを修正しました。
アイコンの背景が透過色になるように修正しました。
深すぎるディレクトリ(パス名で70文字以上)を持つディスクイメージに対して警告するようにしました。 何らかの原因でディレクトリが循環していると際限なく再帰呼出をしてスタックオーバーフローにになるのを回避します。 DiskExplorerではディレクトリツリーの生成、ファイルの書き込み、ファイルの抽出にそれぞれ再帰呼出を使っているものの、 制御できないリソースがあるので出来れば止めたい。
editdisk.iniの設定をプログラム上で簡単に出来るようにしました。 いまさら…。
Windowsの作法に則ってF2で名前の変更。
FATの終端を0xFFFFだけで認識していたのを修正しました。
降順のソートが出来るようにしました。 ソート時は常にディレクトリが上にくるように変更。
アイコンの透明化は色々やったけどよくわからなかったの。C++Buliderの仕様かも。
.ディレクトリと..ディレクトリの表示をする/しないを選択できるようにしました。 メニューの「表示」から切り替えられます。 この設定は標準設定ファイルに保存されます。
それに伴い、ディスクプロファイルと標準設定ファイルを分離しました。 今後、標準設定ファイルの内容は実行中のプログラムから変更される可能性があります。 インスタンスが複数ある場合、基本的には最後の設定変更が保存されます。
「すべて選択」の時に.および..ディレクトリ、ボリュームラベルを選択しないようにしました。 また、DnDで変なファイルをドロップしたときにエラーが出ないようにしました。
キーボード操作用のショートカットキーをいくつか追加。
クラスタ確保に関する致命的バグがありました。 一瞬だけアップした1.55.unstableは使わないで下さい。 ディレクトリの容量を越えて書き込みしようとしたときにディレクトリが破壊されます。
「すべて上書き」「すべて上書きしない」がちゃんと働くように修正。
作業途中でありながら長い間放っておいたので、どこをどう変えたのか詳しいところを忘れてしまいました。 内部的にいろいろ整理しましたが、機能と外見に変化はありません。 定例チェックはパスしていますが、unstableかもしれないので要バックアップです。
(Manual HD)がちゃんと動くようになりました。
getdriveで吸い出したイメージを簡単に扱うために、IPLサーチ機能を追加。 (Manual FD)では先頭10MBを検索して、IPLらしい場所を見つけます。 (Manual HD)では同じく先頭10MBを検索して、領域IPLに書いてあるセクタ数とヘッド数を読み取ります。 ファイルヘッダのサイズとセクタサイズ(通常512)が必要です。
単に、"FAT??"のシグネチャが正しい位置にあるかセクタごとに探しているだけなので、 フォーマットのバージョンが古いとうまくいかない場合もあります。 もっとうまい方法はないかと模索中。
EX68のハードディスクに対応しました。 すなわち、無圧縮のレコード長256のHuman68kフォーマット論理ハードディスクイメージにアクセスできます。
ロングファイルネームによるバグエントリが非表示になるようにしました。 Windows95のインストールされたディスクイメージでもショートネームで普通に表示されます。
ディスクプロファイルの書式が変わっています。 毎回動作設定をされている方には申し訳ないですが、 今回も必ずiniファイルを上書きしてください。 また、今回から設定しない項目はすべて0に設定されるようになりました。
vmwareで使う場合は、下記のプロファイルをeditdisk.iniに取り込んでください。
[vmware plain disk] Extension = ".DAT" ProfileType = 6 DiskStart = 0 Sectors = 0 Heads = 0 Cylinders = 0 SecLen = 512 ; vmware のイメージを使う場合は plain disk を2GB以下で作成します。 ; .plnがヘッダファイルで、.datがイメージファイルになっています。 ; DiskExplorerではFAT32は扱えませんのでフォーマットに注意してください。 ; また、Windows95以降のロングファイルネーム(VFAT)は正しく表示されません。 ; 今のところ、AT互換機用DOSのHDDではセクタ長以外のパラメータは不要です。
いろいろいじったのでバージョン飛び級。
AT版DOSのハードディスクイメージに対応しました。 ただし自動判別はできませんので、 領域選択画面でATを選択する必要があります。 もしかしたらVMwareのディスクイメージで使えるかもしれないです。 バックアップと勇気のある人は試してみてください。
ディスクイメージ作成機能を搭載。 FATフォーマットのフロッピーディスクをヘッダなし無圧縮の論理ディスクイメージファイルに変換できます。 なぜこれまでなかったんだ?とか言わない。
ディスクイメージを手動設定で開くモードを搭載。 え、いまさらいらないですか?
ini設定の「Headers」を「Heads」に変更。 これまでずっとヘッダ数だと思っていました。(笑) ただしくはヘッド数です。
よって、このバージョンでは必ずiniファイルを上書きしてください。
ほかアロケーションテーブルを内部的にDWORDで扱うようにするなど。 必要なら、の対応準備です。
1.44で引数オプション(/S)をこっそり追加していたのに対応して、 スペースを含んだパスのファイルが開けないというバグがひそかに発生していたのを修正しました。
iniにExitOnCancel設定を追加。 起動時のダイアログをキャンセルしたときにDiskExplorerを閉じるか閉じないかを選択できます。 標準の設定では「閉じない」(従来と同じ)になっています。
最近、バージョンアップするたびに圧縮ファイルのサイズが小さくなるんですけど。 何故?
ドラッグ&ドロップ操作を修正。 ドロップ先がドロップを拒否しているときにカラ抽出しないようにしました。
標準のドラッグ&ドロップをOLEDnDにしました。 前バージョンとは逆で、内部DnDを使う場合にSHIFTを押しながら操作。 iniの設定で前バージョンとの互換モードに変更することも出来ます。
ひそかにビューペインの境界を可変に(^^;
予てより要望の多かったドラッグ&ドロップによる書き出しに限定的に対応しました。 限定的というのは、
というのも、自分で実装したOLEDnDとフレームワークが用意してくれる凄く便利で楽々な (アプリケーション内での)DnD機能作成支援機能との接続ができなかったから。 要は、アプリケーション内のDnD機能も全部自分で書けばいいだけのコト…なんだけど、 そりゃもう、ねえ? C++Builder使う意味がないっす。
364日ぶりのバージョンアップ。 T98-Nextのハードディスクイメージに正式に対応しました。 iniも変更されているので必ず上書きしてください。
なぜか消してしまっていたVirtual98対応プロファイルを書き戻しました。 既に対応プロファイルを取り込んでいる人やVirtual98を利用していない人 に関しては関係ありません。
大容量HDDに対応しました。 Anex86形式で約170MBのハードディスクにて数千ファイル、 30MBほど書き込んでみましたが特に問題ありませんでした。 同一ディレクトリのファイル3070個目の書き込みで 「ディレクトリ容量の限界」を表示して停止するのも確認しました。 (つまりエラーへの対応チェック)
修正した点は一行、領域のIPLのサイズの計算が違っていたようです。 IPLの予約サイズが2セクタ以上になるディスクでエラーが出ていました。 セクタ数がWORDの範囲を超えるディスクでそのようになるのではないかと思うのですが、 詳しいことは不明です。 ちなみに各領域のIPLに書いてあるディスク情報(セクタサイズとかヘッダ数とか)は ハードディスクの場合、実際のディスク情報とは無関係のようです。
バージョン番号のつけ方がほとほといい加減だと思う僕。
今回リリースビルドしてみた。あまり変わらないみたい。
29日のはファイルが壊れていました。連絡ありがとう。
Virtual98形式ハードディスクのプロファイルを追加しました。 40MBの設定のみ作ってあるので、利用環境に応じてFileSizeのあたりを 変更しつつ利用してください。 Virtual98を利用していない人や、すでにVirtual98用のプロファイルをiniに 取り込んでいる人に関しては関係ありません。
Anex86形式のディスクに「正式に」対応しました。 というのは、ちゃんとヘッダ情報を読み込むようにしたからです。 これで標準ではない容量のディスクにも対応したと思います。
アーカイブ名を変更したよ。
近頃バージョン番号遠慮気味。
全角ファイル文字化け問題を修正しました。 struprが曲者だったらしいです。
1.3 +1とはちがうのだ〜。
1.31で、遅くなっていた書き込みスピードを元に戻しました。 なぜ遅くなっていたかというとファイル1つ1つの書き込み毎に、 先頭クラスタから順番に空きクラスタを探していたからです。 最初の方は調子がいいんだけど、ディスクの後半になったらもう・・・。 1.2は最終の空きクラスタを覚えておいて書き込みする方式にしていたのだけども、 1.3で書き込み部分を整理していたらどうもそこんところを消してしまっていたらしい。 というわけでひとまず安心です。ファイル1000個、10秒で完了します。
iniファイルにT98の可変長ディスク対応プロファイルを追加。
一般フロッピーディスクイメージを一般ディスクイメージに名称変更。 (98/Vのディスクはこのプロファイルで正常に読み込めます。)
1.3では書き込みの部分を変更したため、書き込みスピードが遅くなっています。 次のバージョンで元に戻します。
iniファイルにT98の128MB対応プロファイルを追加。
今回からディスクを開くコマンドを一新。 直接実行時にはいきなりファイル名を要求してくるので驚かないでください。
ディスクパラメータの設定方法を変更しました。 フロッピーディスクは基本的に全自動、 ハードディスクはiniでパラメータを設定します。
初期状態で対応しているディスクはPC98eの66MB、 Anex86の5MB、10MB、20MB、40MB、80MBとFDI形式、 汎用のヘッダなしフロッピーです。 そのほかは試してませんが、使えるのがあるかもしれません(報告ください)。
16日発表のアーカイブはアップロードに失敗していました。 改めてダウンロードしなおしてください。
今回のバージョンアップは主に自動化の設定です。 単一領域HDDの自動選択、ファイル書き込みの確認廃止。 ただし設定ファイルで設定すれば過去バージョンとの互換動作もできます。
ファイル名を実行ファイルに渡して起動できるようになりました。 実行ファイルへのドラッグ&ドロップ、拡張子連動に対応します。 拡張子のないディスクファイルには適当に拡張子を付けておきましょう。
hdiイメージとfdiイメージに対応しました。 但しfdiイメージでないファイルにfdi拡張子が付いている場合 誤認識する事があるので注意してください。
0バイトファイルの書き込みと抽出に対応しました。 0バイトファイルなど必要無いと思っていたらこれがまた必要なことがあるんですよね。
ついにバージョン1.0を名乗る。 いや、単に0.1づつあげていったら到達してしまっただけのことだけど。
ディスク情報をディスク自体から読み込むようにした。 パラメータの設定は今後全く不要の予定。 よって、iniに書いていたパラメータの設定をコメントアウトした。
複数領域に分割されたHDDを認識できるようにした。 これでBIOSが66MBに対応していなくても安心。 書きこみ専用領域を確保しておけば、万一バグで領域が破壊されても安心。 (致命的なバグはないとは信じているけど・・・。)
ディレクトリの上書きをできなくした。 移動/書き込み先に操作ファイルと同名のディレクトリがあると、 操作はただちにキャンセルされる。 これは子ディレクトリにあるファイルをそのファイルと同名の親ディレクトリに移動すると 移動に失敗することがあったため。
今回、前バージョンのソースを参考に白紙から再構成。 追加追加でプログラムが複雑で読めなくなった時、僕はよくこれをやる。
ディスクの自動オープン機能を付けた。 いつも同じディスクを編集する場合は便利。
エクスプローラからのドラッグ&ドロップ書込み機能を搭載。 この場合、ディレクトリ以下のファイルの一括書込も可。
ディレクトリ内のファイルの表示が劇的に高速化した。 カラムの幅を固定にしただけでこんなに効果があるとは。
アイコンとアプリケーション名が違ってたので直した。 新規プロジェクトの標準のままだった。
今回の整理で特にディスクへのアクセスを厳重に保護し、 万一間違いがあったとしても、容量以上のクラスタへの書込が 「理論上」絶対に起こらないようにした。
ファイルとディレクトリの移動に対応。 移動するのは大変簡単に出来たが、コピーは大変難しいので諦めた。
ファイルの日時が作成日時を含め正しく復元されるようにした。 のは、0.8からだけど。 ディレクトリの日付はWindowsでは絶対復元不可能であるようだ。
書き込みに対応したのでExtract -> Editに名称変更。 豪快に意味なし。
エクスプローラ風でちょっとカッコよくなったかも。 でも機能はあんまりあがってないんだなあ…。
さらに調子に乗って名称変更、EditDisk -> DiskExplorerに。 やたら凡な名前に収まってしまった。 しかもファイル名は元のまま。
イメージ化されたディスクを、 フロッピーに復元することなく読めるということが 以外と多用途に役立つかもしれない。
致命的なエラーはないと思っている。 ただし信頼性において100%ではないので注意。
同名ファイルの上書きや空き容量の確認をして安全性を高めた。 やはり誰でも安心して使えるようにしなくては。
ディスク読み取りの設定を自分で定義できるようにした。 66MB以外のHDや2DDや2HCなども定義しておけばすぐに読めるはず。
自動ディスク種別判定機能をつけた。 といってもファイルサイズを見て比較しているだけだけど。
空きクラスタの位置をキャッシュして書込み速度が大幅アップ。 しかし、今までが極端に遅かったとも言える。
数百以上のファイルがある場合、ファイル情報の取得が長びくが、 実はファイルの情報の取得はクリックした瞬間に終わっている。 取得したファイルをファイルビューに表示する処理で手間取っている。 ・・・未だ高速化の方法がつかめず。