0

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

  • 使用 :

3 Button_ 1 OpenFileDialog_ 1FolderBrowserDialog

  • 进口:

    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:对不起我的英语不好,我是法国人。

4

1 回答 1

0

解决此问题的最佳方法是完全忽略 FileSystem.CopyFile 命令。相反,使用 FileStream 打开您要复制的文件,读取字节,创建一个新文件到目标目的地,然后将字节写入该位置。

您可以以较小的块读取和写入文件,以便检查暂停变量是否设置为 true。例如,如果您创建一个暂停按钮,请设置一个全局变量“bCopyPaused = true”。在自定义复制功能中,您可以使用简单的 if 语句并检查 bCopyPaused == true 是否并暂停操作。您需要跟踪最后复制或写入的字节以允许恢复操作。

下面是一些使用 FileStream 的例子:http: //vb.net-informations.com/files/vb.net_FileStream.htm

于 2013-04-13T21:16:51.097 回答