C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ファイルコピー中の経過表示


(過去ログ 96 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■57620 / inTopicNo.1)  ファイルコピー中の経過表示
  
□投稿者/ どめすと (6回)-(2011/03/07(Mon) 11:33:35)

分類:[VB6 以前] 

FileCopy "c:\tmp.csv", "c:\tmp\tmp.csv"
この様にしてサイズの大きいファイルをコピーしていますが、
経過を表示する事は可能でしょうか。プログレスバーでも
パーセントとかのみの表示でも構いません。
なんらかの表示がほしいです。
引用返信 編集キー/
■57621 / inTopicNo.2)  Re[1]: ファイルコピー中の経過表示
□投稿者/ マサヤ (274回)-(2011/03/07(Mon) 11:45:03)
考え方として、1秒間に何byte送信されるか、ファイルの容量が何byteか。
これがわかればプログレスバーは作成できます。
1秒間に送信されるbyte数は決めの問題ですので、要件作成者に伺ってください。
引用返信 編集キー/
■57635 / inTopicNo.3)  Re[1]: ファイルコピー中の経過表示
□投稿者/ GOD (5回)-(2011/03/07(Mon) 13:39:29)
No57620 (どめすと さん) に返信
別回答として SHFileOperation API を使用する。

・サンプル(テキストボックス×2、コマンドボタン×1)
'--モジュール側
Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type

Public Const FO_COPY As Long = &H2
Public Const FOF_MULTIDESTFILES = &H1

'-- Form側
Private Sub Command1_Click()
Dim Ret As Long
Dim SH As SHFILEOPSTRUCT

With SH
.hwnd = Me.hwnd
.wFunc = FO_COPY
.pFrom = Text1.Text 'コピー元ファイル名
.pTo = Text2.Text 'コピー先ファイル名
.fFlags = FOF_MULTIDESTFILES
End With

Ret = SHFileOperation(SH)
End Sub
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -