Lesen und Schreiben von Dateien auf einem PDA vom PC aus

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Snake3000.

    Lesen und Schreiben von Dateien auf einem PDA vom PC aus

    Hallo Leute,

    ich möchte einen automatischen Update-Assistenten programmieren der über die USB-Verbindung auf ein mobiles Gerät (mit Windows Compact 7) zugreift, dort überprüft ob eine bestimmte Datei existiert und dann diese Datei durch eine neuere Version ersetzt.

    Im Arbeitsplatz wird das Gerät als "DT4000" angezeigt. Navigiere ich zum Ordner am PDA wo die Datei liegt, dann ergibt sich der im Screenshot und im Code-Teil zu sehende Pfad (aus der Explorer-Adressleiste kopiert). Jedoch kann ich über diesen Pfad nicht ermitteln ob diese Datei existiert und in weiterer Folge auch die Datei nicht löschen oder ersetzen, geschweige denn eine Datei (settings.xml) auslesen.

    VB.NET-Quellcode

    1. If File.Exists("Computer\DT4000\\\Windows\Desktop\BONitFlexX_Mobile.exe") Then


    Wie muss ich den Pfad zur Datei am PDA korrekt angeben?

    LG und vielen Dank
    Roland
    Bilder
    • 29062017115637.jpg

      93,11 kB, 610×363, 125 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Ich habe mir mittlerweile auch weitere Infos reingezogen (gibt leider nicht viele) und ich vermute, dass ein direktes Zugreifen mit .NET Boardmitteln nicht möglich ist.

    Da aber über den Windows Datei-Explorer zugegriffen werden kann, wäre es da nicht möglich den Windows-Datei-Explorer für diese "Tätigkeit" einzuspannen? Ordern öffnen über z.B. Eingabeaufforderung:

    Visual Basic-Quellcode

    1. explorer.exe pfad
    geht auch nicht.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    Wie muss ich den Pfad zur Datei am PDA korrekt angeben?
    Das ist so nicht ganz trivial, dazu liefen bereits mindestens zwei Threads und da gab es auch keine Lösung. ;(
    Da ging es um das Abholen von Daten (Bildern) von nem Handy.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe es befüchtet, RodFromGermany,

    wenn sogar Du keine Antwort darauf hast, dann wirds nicht ganz so einfach sein ;)
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    keine Antwort
    Ich habe nicht nur keine Antwort, sondern ich habe dasselbe Problem.
    Wenn man dem Ding ein Laufwerk zuweisen könnte, wäre das gegessen. Vielleicht geht das ja bei Dir, probier mal.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn man dem Ding ein Laufwerk zuweisen könnte, wäre das gegessen. Vielleicht geht das ja bei Dir, probier mal.

    Die Funktion gibts bei diesem Gerät leider nicht. Dann wäre es einfach.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    bei diesem Gerät
    nicht, wohl aber bei Deinem PC im Explorer.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Achso. Geht auch nicht. Aber das wäre auch keine Lösung für unsere Kunden (möchte es ja vereinfachen und nicht verkomplizieren).

    Dann ist das Übertragen der .exe Datei per SD-Karte (wie es jetzt bei Updates geschieht) noch einfacher.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Ist das nicht auch dasselbe, wie wenn man eine Digitalkamera an den PC anschließt?
    Ich denke das man für das Gerät einfach einen anderen USB Treiber braucht. Das ist doch dasselbe wie wenn ich mein Android Handy mit dem MTP (Media Transfer Protocol) bzw. dem Picture Transfer Protocol (PTP) verbinde, oder nicht?

    Du kannst ja mal im Geräte Manager versuchen einen anderen USB Treiber auszuwählen oder sowas in der Art, habe sowas in der Art aber auch noch nie ausprobiert also keine Ahnung ob du da nicht auch in die völlig falsche Richtung rennen würdest. Ich kanns leider hier im Moment auch nich testen.
    Nein, geht nicht. Nur wenn es das Endgerät auch untersützt. Tut es aber nicht.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Hallo Gemeinde,

    ich exhumiere diesen Faden mal zunächst, um das Thema aufzugreifen. Wenn es hier eher die Sitte ist einen Neuen aufzumachen, ist mir das auch nur recht, da mein Ziel des Geschehens ein Android Gerät ist, aber irgendwo muss man ja anfangen. :saint:

    Bei meiner recht intensiven Suche bin ich eh mehrfach auf diesen Faden hier gestossen und nun gehen mir echt die Ideen aus um noch mehr Infos zu bekommen.
    Thema und Ziel ist es einfach nur eine ASCII Textdatei, erstellt durch meine Java App, von dem Android Telephon auf einen PC zu laden... natürlich mit einem Klick und ohne Hintergrundwissen eines DAUs.

    Bekanntes Problem... Kein Laufwerksbuchstabe.
    Dankbarerweise gibt es die WPD (Windows Portable Devices) Unterstützung... leider findet sich da nahezu ausschliesslich C# und nur recht wenig VB.net... Habe mich da mal durch einige Beispiele versucht durchzuwuseln und nun einfach mal bei Null angefangen, da ich auch gerne begreife was der Code so tut.
    Leider geht der Ärger am Anfang schon los.

    Ich habe alles mal auf das Minimalste beschränkt (und auch überkommentiert damit man sich unterhalten kann, so sich jemand findet :) )
    Here we go….

    VB.NET-Quellcode

    1. 'noch nicht notwendige importe mal wegkommentiert
    2. 'Imports System
    3. 'Imports System.Collections.Generic
    4. 'Imports System.IO
    5. 'Imports System.Collections.ObjectModel
    6. 'Imports System.Runtime.InteropServices
    7. Imports PortableDeviceApiLib
    8. Imports System.Management
    9. Public Class Form1
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. 'instanz portable device manager se > kennung fuer mich| dev > device| m > manager ...ist halt immer so meine benennungslogik
    12. Dim sedevm As New PortableDeviceApiLib.PortableDeviceManager
    13. 'nomen est omen denke ich, also angestoepselte geraete pruefen
    14. sedevm.RefreshDeviceList()
    15. 'reine neugierde fuer mich, wollte nur sehen was es beim herumexperimentieren zurueckgibt
    16. ListBox1.Items.Add(sedevm)
    17. 'liste fuer die ids
    18. Dim sedevids = New String(0) {}
    19. 'zaehler fuer die ids 0 waere mir logischer, aber ich habe es mal so uebernommen wie in den wenigen beispielen gefunden
    20. Dim secount As UInteger = 1
    21. 'auch hier die hoffnung auf nomen est omen, leider nirgendwo eine api beschreibung gefunden :-(
    22. 'man hofft also das alle angesteckten geraete gelistet und gezaehlt werden
    23. sedevm.GetDevices(sedevids(0), secount)
    24. 'alle gefundenen devices in listbox2 anzeigen
    25. For Each deviceid As String In sedevids
    26. ListBox2.Items.Add(deviceid)
    27. Next
    28. End Sub


    Na wenn das mit den Tags mal funzt…. bin gespannt.... bibber

    Wie gesagt ganz simpel.... eine Form, ein Button, zwei Listboxen.

    Getestet habe ich mit einem Tablet (Android 6) und zwei Memorysticks..... leider findet das Dingen immer nur ein Gerät.
    Egal welches, und in welcher Reihenfolge ich sie in die verfügbaren Ports hereinstecke.
    Dabei ist zu bemerken das sich ein bestimmter Memorystick immer durchsetzt. Das heisst… Tablett oder der andere Stick zuerst eingesteckt... das Gerät wird gefunden und die ID zurückgegeben. Diesen einen bestimmten Memorystick dazugesteckt… nur dieser wird gefunden.
    Ebenfalls ändert sich die Variable secount niemals... egal ob ich 1, 2 oder 3 initialisiere.

    Irgendwelche Ideen was ich da falsch mache???
    Hallo Gemeinde,

    damit dieser Faden nun endlich seine Ruhe findet, nur noch ein letzter Post von mir.

    Das ursprüngliche Problem, Dateien von einem unbekanntem Gerät am USB Port zu kopieren, funktioniert bei mir mittlerweile akzeptabel.
    (Hilfreich waren:
    cgeers.wordpress.com/2011/08/13/wpd-transferring-content/
    ebenso die Tipps hier in dem Forum, speziell auch die älteren von SAR-71, und natuerlich RodfromGermany's Konverter)

    Mein Problem, alle eingestöpselten Geräte zu erkennen funzt leider weiterhin nicht, und ich gebe das auch jetzt wieder auf.
    Zu wenig Informationen im Netz... und zu wenig Hirnkapazität auf meiner Seite.

    Ich finde mich damit ab das nur das eine Gerät eingestöpselt sein darf, und gut.

    An Diskussionen zum Thema bleibe ich natürlich interessiert...
    Ja, danke Dir…. über diesen Eintrag bin ich auch schon gestolpert.... hat aber nicht so wirklich weitergeholfen...

    Das Problemchen der Dateiübertragung habe ich ja mittlerweile gelöst.
    Gerät anstecken, Button klicken und die Dateien der Begierde sind auf dem PC... nur leider muss es zwingend sein das es das einzige Gerät ist das eingestöpselt ist.

    Ich lebe damit mal zunächst...