German Datei auf USB-Datenträger schreiben

peternmb

Active Member
Licensed User
Hallo,
ich würde gerne eine Datei auf einen USB-Stick exportieren.
Ich schaffe es zwar die vorhandenen Datenträger zur Auswahl anzuzeigen, das Schreiben klappt aber nicht.
Ich habe ein Testprogramm erstellt, in dem eine kleine txt-Datei erzeugt wird und dann versucht diese zu kopieren - klappt aber nicht :confused:
Vielleicht kann mir jemand sagen, was ich dabei falsch mache. Danke.
 

Attachments

peternmb

Active Member
Licensed User
Gibt es irgendwo ein funktionierendes Beispiel, wie ich eine Datei auf einem USB-Stick kopieren kann?
Ich habe das Forum jetzt tagelang durchsucht finde aber nichts, was mir wirklich weiterhilft.

PS.: Vielleicht könnte DonManfred, der sich da richtig gut auskennt mein Beispiel so anpassen, dass es funktioniert - wäre toll :cool:
 

mw71

Active Member
Licensed User
Danke, das kenne ich - mein Beispiel ist davon abgeleitet.
Ich finde allerdings damit keine Möglichkeit, meine lokale Datei auf einen USB-Stick zu speichern.
wenn ich das beim überfliegen richtig gelesen habe, dann unterstützt die Lib Streams (Input und Output)
Dann kannst du dir 2 Streams anlegen (In und Out) und über diesen weg mit File.Copy2(Async) das rüber schieben.

etwa so:
B4X:
        Dim in As InputStream = File.OpenInput'die Locale Datei
        Dim out As OutputStream = 'da soll es hin, musst du schauen wie es die Lib möchte
        Wait For (File.Copy2Async(in, out)) Complete (Success As Boolean)
        Log("Success: " & Success)
ich hab mich jetzt aber nicht näher mit der Lib beschäftigt.

Gutes gelingen.
 

peternmb

Active Member
Licensed User
Auch damit bekomme ich es nicht hin, ich häng noch einmal mein Demo, diesmal mit Streams an.
Das Problem scheint zu sein, dass ich das Ziel (USB-Stick) anscheinend nicht korrekt benenne.
 

Attachments

peternmb

Active Member
Licensed User
Hallo,

kann sich das vielleicht jemand der sich besser auskennt anschauen - ich komme damit einfach nicht weiter...
Danke.
 

mw71

Active Member
Licensed User
zwischenstand:
- ich bekomme immer nur Root zurück
- sb.ToString !!
 
Last edited:

mw71

Active Member
Licensed User
auf der einen Seite, ja, wenn ich mir den Code anschaue.
Auf der anderen Seite macht Erel das in seinem Beispiel genau so (oder übersehe ich da was?). Dieses habe ich aber noch nicht getestet, kann also nicht ausschließen das es am Gerät liegt (aber unwahrscheinlich)
 

peternmb

Active Member
Licensed User
Du kannst jeden Pfad erreichen wenn Du einmal Root kennst.
du musst Dir nur selber einen "weg dahin" suchen. Root fileliste abrufen. In den Ordner wechseln wo Du hin willst....
ich wähle doch den Ordner den ich möchte mit dem Button "Auswählen" aus - dann müsste dieser doch dann als Rückgabewert kommen???
Wie soll ich denn sonst noch den ausgewählten Ordner suchen/finden?
 

peternmb

Active Member
Licensed User
Der user MUSS den ROOT-Pfad auswählen.
Tut er das nicht so hast Du NUR auf den ausgewählten Pfad Zugriff. AUF KEINE ANDEREN ORDNER.

Wählt der User den ROOT-Pfad aus kannst Du von da aus auf alle Pfade der SD-Karte zugreifen.
Kapiere ich irgendwie nicht. Könntest du das Beispiel so anpassen, dass es funktioniert.
Dann würde ich es vielleicht nachvollziehen können und verstehen. Danke.
 

mw71

Active Member
Licensed User
Moin,

was @DonManfred meint:
der User muss/sollte (Definitionsfrage) ROOT auswählen. Damit kannst du auf Root und alle Ordner darunter zugreifen.

das was du meinst:
wenn der User das gewünschte Verzeichnis (also das Zielverzeichnis) auswählt dann möchtest du den kompletten Pfad dahin haben.
Es gibt dabei aber wohl (ich kann nur danach gehen was DonManfred schreibt) die Einschränkung das du nur auf dieses Verzeichnis zugreifen kannst.

Unterstellt das dir das reicht (also nur Zugriff auf dieses eine Verzeichnis), dann bleibt noch die Frage ob man diesen kompletten Pfad geliefert bekommen kann.
Es kann ja auch der X'te Unterordner sein.
 

DonManfred

Expert
Licensed User
ob man diesen kompletten Pfad geliefert bekommen kann
Nein, kannst du nicht. zumindest ist mir nichts dergleichen bekannt. Wir müssen uns lösen von Ordnern und Ordnerstrukturen wie wir sie kennen.

Du hast eine Referenz zu einem Ordner. Das kann, systemtechnisch gesehen, auch ein Virtuellerlink sein der z.B. zu einem Driveordner zeigt. Oder jegliche andere Art von Datenquelle.
 

peternmb

Active Member
Licensed User
Nein, kannst du nicht. zumindest ist mir nichts dergleichen bekannt. Wir müssen uns lösen von Ordnern und Ordnerstrukturen wie wir sie kennen.

Du hast eine Referenz zu einem Ordner. Das kann, systemtechnisch gesehen, auch ein Virtuellerlink sein der z.B. zu einem Driveordner zeigt. Oder jegliche andere Art von Datenquelle.
Der User wählt im "External Storage Browser" das Ziel aus (z.B. einen Ordner auf einem USB-Stick) - nur den muss ich doch kennen, um meine Datei dorthin zu kopieren.
 

peternmb

Active Member
Licensed User
Könntest du mir vielleicht an Hand meines kleinen Beispieles demonstrieren, wie das in der Praxis funktioniert.
Danke.
 
Top