ファイル関連:プログレスバーを表示させファイルのコピー(CopyFile)VB2008でプログレスバーを表示させながらコピーする実行例サンプルです。ファイル関連へMy.Computer.FileSystem.CopyFile を使うとプログレスバーを表示させながらコピーできます。 コピー中の「キャンセル」も実行可能です。 同じファイルが既に存在する場合は、メッセージダイアログが表示されます。 ■実行画面 コピー元ファイルとコピー先フォルダーを指定しコピーボタンをクリックします。 「コピーしています」のプログレスバー 「キャンセル」ボタンで中止できます。 既に同名のファイルが存在する場合、「ファイルの上書き確認」ダイアログが表示されます。 それぞれのファイルのサイズと更新日時も表示されています。 ■実行コード Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ofd As New OpenFileDialog With ofd 'タイトル .Title = "開くファイルを選択してください" '初期のファイル名 .FileName = "" End With '「ファイルを開く」ダイアログを表示。 If ofd.ShowDialog() = DialogResult.OK Then '選択されたファイル名を表示 Label1.Text = ofd.FileName End If ofd.Dispose() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim path As String Dim fbd As New FolderBrowserDialog fbd.Description = "フォルダ選択" fbd.RootFolder = System.Environment.SpecialFolder.MyComputer '初期フォルダ path = Label2.Text fbd.SelectedPath = path If fbd.ShowDialog() = DialogResult.OK Then Label2.Text = fbd.SelectedPath End If fbd.Dispose() End Sub Private Function MyCheck() As Boolean MyCheck = False If Label1.Text = "" Then MsgBox("コピー元のファイルを指定してください。") Exit Function End If If Label2.Text = "" Then MsgBox("コピー先のフォルダを指定してください。") Exit Function End If MyCheck = True End Function 'コピー Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim sdir As String Dim sfina As String If MyCheck() = False Then Exit Sub End If 'コピー先フォルダ sdir = Label2.Text If Strings.Right(sdir, 1) <> "\" Then sdir &= "\" End If 'ファイル名のみの取り出し sfina = IO.Path.GetFileName(Label1.Text) On Error GoTo errexit My.Computer.FileSystem.CopyFile(Label1.Text, sdir & sfina, FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing) Exit Sub ErrExit: MsgBox("エラーが発生しました。" & vbNewLine & Err.Description) End Sub End Class Visual Basic 2008 Express Edition実践入門 |