.net - spyblocker - oo privacy win10
Escribir archivos en un dispositivo WPD a través de MTP C#/ VB.net (2)
Parece que dimeby8 publicó un código que maneja las transferencias de datos. Verifique otras publicaciones en su blog, especialmente:
Envío de comandos MTP a través de WPD parte 1
Me gustaría escribir una aplicación que copie archivos MP3 a SanDisk Sansa M240. SanDisk no tiene una letra de unidad y utiliza MTP para la transferencia de archivos. Me tropecé con la muestra de conexión al dispositivo en: http://blogs.msdn.com/dimeby8/archive/2006/09/27/774259.aspx
pero una vez conectado, no puedo entender cómo copiar archivos / crear carpetas en el dispositivo.
Estoy muy sorprendido de que no haya contenedores .Net para esta biblioteca COM.
Para transferir archivos a través de MTP con c #:
Descargue este paquete NuGet: PortableDevices
Agregue referencias a estas 4 bibliotecas COM:
- PortableDeviceClassExtension
- PortableDeviceConnectApi
- PortableDeviceTypes
- PortableDeviceApi
Tome dll''s debajo de
obj/Debug
yobj/Debug
enbin/Debug
:- Interop.PortableDeviceClassExtension.dll
- Interop.PortableDeviceConnectApiLib.dll
- Interop.PortableDeviceTypesLib.dll
- Interop.PortableDeviceApiLib.dll
Ahora puede usar la siguiente función para listar todos los dispositivos, aunque FriendlyName
no parece estar funcionando (devuelve una cadena vacía):
private IDictionary<string, string> GetDeviceIds()
{
var deviceIds = new Dictionary<string, string>();
var devices = new PortableDeviceCollection();
devices.Refresh();
foreach (var device in devices)
{
device.Connect();
deviceIds.Add(device.FriendlyName, device.DeviceId);
Console.WriteLine(@"DeviceId: {0}, FriendlyName: {1}", device.DeviceId, device.FriendlyName);
device.Disconnect();
}
return deviceIds;
}
El siguiente paso es obtener los contenidos del dispositivo, que se hace de esta manera:
var contents = device.GetContents();