如何将文件从路径复制到WPD或MTP设备

时间:2017-05-23 11:32:46

标签: vb.net wpd

我使用VB.NET创建视频复制应用程序。我可以轻松地将我需要的文件从路径复制到USB,但是我在使用手机等便携式设备时也遇到了麻烦。

到目前为止,我能够使用此question中提供的代码和DLL查找并连接手机,但我无法将文件复制到设备。

与此相关的子代码如下:

Imports System.IO
Imports PortableDevices

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox("Please make sure that your device is connected! Press ok to continue", MsgBoxStyle.OkOnly)

        For Each item In listID.Items
            table = Universal.convertType(item.ToString.Remove(6), 1)
            colInitials = Universal.getStringUntilChar(table, "_")
            'Code to get the file path stored in sql and store it as filePath
            Dim filePath As New DirectoryInfo(SQL.getRecordedValue(table, 
            colInitials & "Location", colInitials & "ID", item.ToString.Remove(0, 6)))
            Dim folderName As String = filePath.Name
            ' build collection for the devices
            Dim pds As New PortableDeviceCollection
            ' get dev list
            pds.Refresh()
            For Each device In pds
                ' connect before doing stuff
                device.Connect()

                ' find out what treasures are stored here
                Dim root = device.GetContents()
                ' the root is the startingm root folder

                'Dont know what to do here

                ' disconnect from this device
                device.Disconnect()

            Next
            pds.First.Disconnect()

        Next
    End Sub

1 个答案:

答案 0 :(得分:0)

您对上一主题有一个重要的answer,其中包含您需要的所有信息。

在这里,您需要学习便携式设备documentation,编程指南 - >在设备内容上运行。在那里,您可以找到从PC到设备的复制文件样本,以及它的工作原理。

您也可以从link下载整个示例项目。它包含内容传输的样本。

简而言之:您应该创建一个包含要传输的文件数据的流对象,使用内容对象中的CreateObjectWithPropertiesAndData方法,并将流数据复制到从内容接收的流中。

复制完所有数据后,从IPortableDeviceDataStream调用Commit以让驱动程序知道您已完成。