source, destination oder destination, source …
Gerade habe ich versucht von einem mobilen Geräte, welches mit WindowsCE ausgestattet ist per VB.net eine Datei auf den PC zu übertragen. Dies wollte einfach nicht funktionieren. Die Ursache des Problem war jedoch sehr einfach.
Gewöhnlich so: copy(Quelle, Ziel) in der API: copy(Ziel, Quelle). Das die API zuerst das Ziel erwartet muss man erst einmal wissen.-> hat mich ein paar Minuten googeln gekostet. 🙂
Hier noch eine kleine Anleitung wie man die API einsetzt:
Zuerst benötigt man eine .net Libary(Remote API, kurz RAPI), welche die nötigen Funktionen mitbringt. Diese kann bei opennetcf.com heruntergeladen werden. Download
Die heruntergeladene DLL muß in die Entwicklungsumgebung eingebunden werden. Wie dies geht, hatte ich bereits in einen Beitrag beschrieben. VB.NET – CoreTemp Werte…
Imports OpenNETCF.Desktop.Communication
Über “Imports” wird die Libary zugänglich gemacht. Anschließend ein RAPI Objekt erstellen
Dim WithEvents myrapi As New rapi
und einen Source und Destination Pfad festlegen.
Dim const_src_path As String = "\temp\test.txt"Dim const_des_path As String = "c:\temp\test.txt"
Praktischerweise legt man sich mehere Funktionen an, welche eine Verbindung aufbauen und trennen, die Datei kopieren und überprüfen ob die Datei kopiert wurde. Dies kann wie folgt aussehen.
Verbindung herstellen
Public Sub func_device_connect Try 'verbinden myrapi.Connect()
'mehere verbindungsversuche Do While Not myrapi.DevicePresent MessageBox.Show("Bitte Gerät anschließen", "Kein Gerät angeschloßen") myrapi.Connect() Loop
'fehler abfangen Catch ex As Exception
MessageBox.Show("Fehler " & ex.Message, "Verbindungsfehler") 'abruch Application.Exit() End TryEnd Sub
Verbindung beenden
Public Sub func_device_disconnect myrapi.Disconnect()End Sub
Datei vom Gerät kopieren
Public Sub func_copy_file Try myrapi.CopyFileFromDevice(const_des_path, const_src_path)
Catch ex As Exception MessageBox.Show("Fehler beim kopieren" & ex.Message, "Fehler") End TryEnd Sub
Möchte man eine Datei auf das Gerät kopieren, dann einfach CopyFileToDevice
Datei im Zielordner überprüfen
Public Function func_chk_file_exists(chk_file As String) Dim result As Boolean
If file.Exists(chk_file) = True Then result = true Else result = False End If
return resultEnd Function
Für “file.exists” muß der “System.IO” Namespace angegeben werden
Imports System.IO