Mostrar los elementos de Mi PC de windows

Iniciado por ziclope, 17 Agosto 2016, 01:48 AM

0 Miembros y 1 Visitante están viendo este tema.

ziclope

Gracias de antemano.
Tengo un dispositivo movil samsung el cual lo conecto a mi computadora con sistema windows 8.1, y windows lo reconoce con icono 23 y dentro de eso me muestra la memoria interna (Phone) y la externa (Card).

Mi pregunta es: Como hago para copiar un archivo de mi PC a una de las unidades del dispositivo movil mediante codigo.

Mi problema radica en que, no se como poner la ruta de la carpeta especial "Mi PC"

Código (vbnet) [Seleccionar]
My.Computer.FileSystem.CopyFile("d:\trabajos\tarea.txt", Environment.GetFolderPath(Environment.SpecialFolder.MyComputer) & "\23\Card\tarea.txt")

Les estaré muy agradecidos

[Arg] $triker;

Código, código, código.

Leete esto.

También por favor decinos el lenguaje en el que estás programando.

(Fe de erratas serias)
La ubicación "Mi PC" no existe. Se divide en diferentes unidades, C:, D:, G:, X:.
Si yo me refiero a "C:\recurso\recursos\recurso.exe", se busca en esa unidad.
Si yo me refiero a otra, se usa otra.
Pero la cuestión es que Mi PC es sólo un directorio imaginario (o programa) que agrupa todas las unidades conectadas al equipo.
8Noobs - Comunidad para todos y todas, sin importar sus conocimientos en informática.

--> Unirse a 8Noobs <--

Eleкtro

#2
Para despejar dudas a los demás: el lenguaje en el que está trabajando es Visual Basic.NET.
Jamás entenderé en que piensa la gente que formula una pregunta de programación sin mencionar el lenguaje ...como si aquí todos fuesen adivinos :¬¬




Supuestamente para que el dispositivo Android se pueda mapear a una letra de unidad convencional (ej. F:\), debes habiilitar las siguientes características en tu dspositivo:



Despues de eso supuestamente al conectar tu dispositivo deberías ser capaz de ver una letra de unidad en el directorio virtual Mi PC, es decir, que ya podrías copiar archivos de manera normal:
Código (vbnet) [Seleccionar]
Dim fi As New FileInfo("C:\Archivo de origen.ext")
fi.CopyTo(Path.Combine("X:\Directorio android\", fi.Name), overwrite:=False)





Si eso no te funcionase, entonces siempre puedes recurrir a la librería Android Lib:
+ Ejemplos de uso:

Con esta class que he sacado de mi API ElektroKit: https://github.com/ElektroStudios/ElektroKit/blob/master/Solution/Elektro.Application.ThirdParty/AndroidLib/Tools/AndroidLibUtil.vb -puedes utilizar AndroidLib para enumerar los dispositivos Android conectados al PC:
Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author   : Elektro
' Modified : 06-March-2016
' ***********************************************************************

Imports System.Collections.ObjectModel
Imports System.ComponentModel

Imports RegawMOD.Android

Public NotInheritable Class AndroidLibUtil

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Prevents a default instance of the <see cref="AndroidLibUtil"/> class from being created.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   <DebuggerNonUserCode>
   Private Sub New()
   End Sub

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' The Android controller, which controls communication to and from connected Android devices.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   Private Shared controller As AndroidController

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets the Android devices that are connected on the current system.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <value>
   ''' The Android devices that are connected on the current system.
   ''' </value>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared ReadOnly Property Devices As ReadOnlyCollection(Of Device)
       <DebuggerStepThrough>
       Get
           Return New ReadOnlyCollection(Of Device)(GetConnectedDevices.ToArray())
       End Get
   End Property

   Private Shared Iterator Function GetConnectedDevices() As IEnumerable(Of Device)

       ' Usually, you want to load this at startup, may take up to 5 seconds to initialize/set up resources/start server.
       If (AndroidLibUtil.controller Is Nothing) Then
           AndroidLibUtil.controller = AndroidController.Instance
       End If

       ' Always call UpdateDeviceList() before using AndroidController on devices, to get the most updated list.
       AndroidLibUtil.controller.UpdateDeviceList()

       If AndroidLibUtil.controller.HasConnectedDevices Then
           For Each serial As String In AndroidLibUtil.controller.ConnectedDevices
               Yield AndroidLibUtil.controller.GetConnectedDevice(serial)
           Next serial
       End If

   End Function

End Class


Y entonces ya solo es cuestión de transferir los archivos al directorio que desees utilizando los métodos expuestos en las classes de AndroidLib.

Saludos