・CopyFileExをDelphiで使うときのサンプルを作ってみた2007/10/26 16:05

前に書いたように、酢こんぶ自作のツール「ひとまとめ」にCopyFileExを使うことで、大きなファイルをコピーしているときに無反応になってしまう問題とコピー動作をキャンセルできないという問題を解決することができた。

但しこれはVisualBasic6での話で、これからメインの開発言語にしようと思っているDelphiでCopyFileExを使えるようになったわけではない。まあ使い方はわかったんだからDelphiでも簡単に使えるだろうと思ったらこれが甘かった。

VB6と同じようにコードを書くと文法エラーでコンパイルすらできない。なぜエラーになるのかはっきりしないまま、試行錯誤してなんとか実行できるようになったが、コピーの途中でキャンセルボタンを押すと例外(つまり実行時エラー)が発生して正常動作しない。

ポインタの処理がまずいことは薄々わかっていたのでそのあたりを勉強しなおしてなんとか動くものができたのだが、この作業をしているときに思ったのが、
「実際に動作するサンプルがあればなあ、、、」
ということだ。

ネットにはDelphiの実動サンプルがたくさんあるのだが、CopyFileExを使ったものは見つからないし、サンプルコードもあまりないので結構苦労した。で、これからDelphiを使う人はそんな苦労をする必要もなかろうということで、実動サンプルを公開することにした。

サンプルファイルはここ
  ↓
CopyFileExサンプル

動作説明:
(1)Startボタンを押してコピー元とコピー先を決めるとコピー開始。
(2)Cancelボタンでコピー動作のキャンセルができる。

注意事項:
(a)動作はTurboDelphiExplorer+Win2000環境のみで確認
(b)これを使って何かあっても酢こんぶは責任を取らない
(c)何に使ってもOKで使用許可も必要なし
(d)気が向いたら、使ってるよ連絡をしてくれるとうれしい

ということでよろしくお願いします。

あと、ファイルの保存先をデスクトップにすると、キャンセルボタンを押したあとの処理にものすごく時間がかかるという現象が酢こんぶの環境で起きているのだが、原因がよくわかんないので放置してあるます。(^_^;

----11/15追記--------
コピーするファイルサイズが0byteのとき(実際にはいくらかのディスクスペースを消費してるはずだけど中身のないファイルは0byteということになる)、 CopyProgressRoutineの~%complete計算で0除算エラーが出るので、このときだけ別処理にするとかしてください。
----追記ここまで-------

------------------------------------------
このブログの本店「木全屋かるた堂」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

コメント

_ 木全直弘 ― 2007/10/27 16:05

 をを、「ひとまとめ」が、ますます機能充実?

 また、雑誌に載るの?

_ 酢こんぶ ― 2007/10/31 10:10

最近は雑誌への掲載依頼はないです。

きちんとキャンセルができるということで、やっと
完成形になったので、是非掲載して欲しいところ
なんですけどねえ。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログはxxの思考錯誤日記です。
xxの部分をお答えください。

コメント:

トラックバック

このエントリのトラックバックURL: http://karutadou.asablo.jp/blog/2007/10/26/1872633/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。