我们可以暂停和恢复文件复制吗?
- 使用:
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来模拟按下暂停按钮的动作 ?
p:对不起,我的英语不好,我是法国人。
解决这个问题的最佳方法是忽略文件系统。CopyFile命令完全。相反,使用FileStream打开要复制的文件,读取字节,创建一个新文件到目标目的地,并将字节写入该位置。
您可以在较小的块中读取和写入文件,以便您可以检查暂停变量是否设置为true。例如,如果你创建一个暂停按钮,设置一个全局变量"bCopyPaused = true"。在自定义复制函数中,您可以使用一个简单的if语句,检查bCopyPaused == true并暂停操作。您需要跟踪最后复制或写入的字节,以便恢复操作。
下面是一些使用FileStream的例子:http://vb.net-informations.com/files/vb.net_FileStream.htm