Как скопировать файлы с пути на устройство WPD или MTP

Я использую VB.NET для создания приложения для копирования видео. Я могу легко скопировать нужные мне файлы с пути на USB, но у меня возникают проблемы с переносными устройствами, такими как телефоны.

До сих пор мне удавалось найти и подключить телефон, используя код и 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

person Hucen Farhan    schedule 23.05.2017    source источник


Ответы (1)


У вас есть отличный ответ на вашу предыдущую тему, который содержит всю необходимую вам информацию.

Здесь нужно изучить портативные устройства документация, Руководство по программированию -> Работа с содержимым устройства. Там вы можете найти пример копирования файла с ПК на устройство, с комментариями, как это работает.

Вы также можете загрузить весь образец проекта по ссылке . Он содержит образец передачи контента.

Короче говоря: вы должны создать объект потока, который содержит данные файла, которые вы хотите передать, использовать метод CreateObjectWithPropertiesAndData из объекта контента и скопировать данные потока в поток, полученный из контента.

После того, как все данные будут скопированы, вызовите Commit из IPortableDeviceDataStream, чтобы сообщить драйверу, что вы закончили.

person Arthur Bulakaiev    schedule 15.06.2017