- - PR -
ProgressBarについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-22 21:28
はじめまして。
C#を勉強する目的でまずは、あるファイルをxxフォルダからyyフォルダにコピーするコードを記述しました。 そこにProgressBarを追加してコピーの進行状況を表示したいのですが・・・・詰まっちゃいました。 過去ログやTIPS等を拝見しましたが複数ファイルのコピーや読み込み等の記述でした。 行いたいのは1つのファイル(実はmdb)のコピーに対してProgressBarで進行状況を表示したいと思っております。 可能でしょうか?可能であれば参考となるurlだけでも結構なのでご教授願います。 以下、コーディング例 string fileName = "tttt.mdb"; FileInfo fi = new FileInfo(fileName); Directory.CreateDirectory(@"\\work"); fi.Copyto(@"\\work\\" + fileName); ↑この処理の進行状況をProgressBarで表示したいと考えております。 | ||||
|
投稿日時: 2004-11-22 23:58
CopyToでやっちゃうと、そのメソッドは処理が終わるまでブロックしてしまうので、できません。2つのファイルを開いて、メモリ上に取り込みながらコピーすると、できます。
Win32APIの、SHなんとか辺りをラップすれば、標準のプログレスウインドウを表示できます。 #開発環境入れたマシンがポシャっているので… _________________ | ||||
|
投稿日時: 2004-11-23 09:06
諸農です。
方法は色々あると思います。 次のコードは、バイト配列を使ってコピー処理を行いながら、 その進行状況をProgressBarで表現する方法です。 フォームにLabelコントロールを2個、Buttonコントロールを2個、 ProgressBar、OpenFileDialog、SaveFileDialogコントロールを それぞれ1個ずつ配置しておきます。 ProgressBarの進行は100回でマックスになるように コピー元のファイルのサイズから計算して求めておき、 コピー用のメソッド内で、そのサイズ分でProgressBarの 進行状況を通知してもらっています。
--編集追加-- コピー処理中に処理中断が出来るように変更 _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-11-23 10:02 ] | ||||
|
投稿日時: 2004-11-23 10:49
ご参考に
http://blogs.users.gr.jp/naka/articles/2643.aspx | ||||
|
投稿日時: 2004-11-23 10:49
ご参考に
http://blogs.users.gr.jp/naka/articles/2643.aspx | ||||
|
投稿日時: 2004-11-23 14:24
Jitta様
やはりCopyToではブロックされちゃうのですね。 ちょうどそこで詰まって、色々とサーチエンジンやこちらの過去ログ等を参考にさせて頂いておりました。 自分の調べ方が悪くて、やりたいことができないと思っておりましたが一安心です。 >Win32APIの、SHなんとか・・・・ ご教授ありがとうございます。実は私、今まで開発言語はCOBOLでした。 いろいろと頑張って調べてみます。また詰まったら調べ方でも宜しいですのでご教授願います。 諸農様 サンプルプログラムまで付与させて頂きありがとうございます。 すみません勉強不足でmdbをバイト配列を使ってコピーすることすらわかりませんでした。 諸農様のコードを参考にしてもう一度、頑張ってみます。 中様 先ほどurlを拝見しました。 私にとって意味不明のコードが多々記述されていましたがJitta様からご教授させて頂きましたWin32API の方法だということがなんとなくわかりました。こちらに関してもご参考にさせて頂きます。 追伸 C#を始めて間もないこともあり、自分の勉強不足がよくわかりました。 皆様の助言、感謝しております。どうもありがとうございます。 また、何かありましたら宜しくお願いします。 |
1