vb.. NET暂停/恢复文件拷贝(如windows 8按钮)



我们可以暂停和恢复文件复制吗?

    使用:

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

最新更新