我们可以暂停和恢复文件副本吗?
3 Button
_
1 OpenFileDialog
_
1 FolderBrowserDialog
进口:
Imports System.IO
代码:
Private Sub BTN_filedialog_Click(sender As Object, e As EventArgs) Handles BTN_filedialog.Click
OpenFileDialog1.InitialDirectory = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 'Cette clé de registre ouvre "Ordinateur"
OpenFileDialog1.Title =
OpenFileDialog1.FileName = ""
OpenFileDialog1.Filter = _
"All files (*.*)|*.*|txt files (*.txt)|*.txt"
Dim dlgResult = OpenFileDialog1.ShowDialog()
If dlgResult <> System.Windows.Forms.DialogResult.OK Then
MessageBox.Show("File Error " & dlgResult)
End If
End Sub
Private Sub BTN_folderbrowserdialog_Click(sender As Object, e As EventArgs) Handles BTN_folderbrowserdialog.Click
Dim dlgResult = FolderBrowserDialog1.ShowDialog()
If dlgResult <> System.Windows.Forms.DialogResult.OK Then
MessageBox.Show("Folder Error " & dlgResult)
End If
End Sub
Private Sub BTN_copyfile_Click(sender As Object, e As EventArgs) Handles BTN_copyfile.Click
My.Computer.FileSystem.CopyFile( _
OpenFileDialog1.FileName, _
FolderBrowserDialog1.SelectedPath & "\" & _
OpenFileDialog1.SafeFileName, _
FileIO.UIOption.AllDialogs)
End Sub
我使用My.Computer.FileSystem.CopyFile
对于Windows 8,在对话框“复制”中,有一个暂停按钮。
如何称这个“事件”?
我不知道这是否可行,但我们可以将参数发送给某个Lib /。 Dll要模拟按暂停按钮的操作?
Ps:抱歉我的英语不好,我是法国人。
答案 0 :(得分:0)
解决此问题的最佳方法是完全忽略FileSystem.CopyFile命令。而是使用FileStream打开要复制的文件,读取字节,创建到目标目标的新文件,并将字节写入该位置。
您可以用较小的块读取和写入文件,以便检查暂停变量是否设置为true。例如,如果创建暂停按钮,请设置全局变量“bCopyPaused = true”。在自定义复制功能中,您可以使用简单的if语句并检查bCopyPaused == true并暂停操作。您需要跟踪最后复制或写入的字节以允许恢复操作。
以下是使用FileStream的一些示例:http://vb.net-informations.com/files/vb.net_FileStream.htm