vb..NET暂停/恢复文件副本(如Windows 8按钮)

时间:2013-04-13 21:03:10

标签: vb.net visual-studio-2010 dll file-io visual-studio-2012

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

  • 使用:

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

1 个答案:

答案 0 :(得分:0)

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

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

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