Objekt einer Datei verschieben, aber Verzeichnispfad fehlt

ForenDaddy

Aktives Mitglied
Kann man eine Datei, die man nur als Objekt zurückbekommen hat, kopieren/verschieben etc ohne den Verzeichnispfad zu kennen?

Hintergrund ist der, ich habe über die API jMTP Zugriff auf ein Gerät, das mir ein Objekt zurückgibt, dass eine Datei darstellt. Ein Bild oder ein Video.
Ich möchte diese Datei nun speichern. Aber leider erhalte ich keinen Verzeichnispfad von der API, mit dem ich arbeiten könnte. Ich habe den Verzeichnispfad mir zwar selbst zusammengebaut, aber er entspricht nicht der üblichen Zugriffsmöglichkeit, wie "c:\trallala", sondern eher "DEVICE\Phone\DCIM\trallala".
Das Objekt scheine ich aber in Händen zu halten.
Ich müsste es nur irgendwie kopieren können.
FileInputStream schlägt da fehl, weil es eben nach einem konkreten Pfad verlangt.
 

VfL_Freak

Top Contributor
Moin,

Kann man eine Datei, die man nur als Objekt zurückbekommen hat, kopieren/verschieben etc ohne den Verzeichnispfad zu kennen?

Hintergrund ist der, ich habe über die API jMTP Zugriff auf ein Gerät, das mir ein Objekt zurückgibt, dass eine Datei darstellt. Ein Bild oder ein Video.
Ich möchte diese Datei nun speichern. Aber leider erhalte ich keinen Verzeichnispfad von der API, mit dem ich arbeiten könnte. Ich habe den Verzeichnispfad mir zwar selbst zusammengebaut, aber er entspricht nicht der üblichen Zugriffsmöglichkeit, wie "c:\trallala", sondern eher "DEVICE\Phone\DCIM\trallala".
Das Objekt scheine ich aber in Händen zu halten.
Ich müsste es nur irgendwie kopieren können.
Was meinst Du mit übliche Zugriffsmöglichkeit ?
Prinzipiell solltest Du zum Speichern jeden beliebigen Pfad angeben könnten (falls nicht existent, vor mit mkdir() anlegen)


FileInputStream schlägt da fehl, weil es eben nach einem konkreten Pfad verlangt
Was schlägt fehl?
Was für einen konkreten Pfad ?

Post mal mehr Code !

Gruß
Klaus
 

ForenDaddy

Aktives Mitglied
üblich Zugriffsmöglichkeit wäre z.B. "c:\DCIM\100MSDCF\DSC00715.JPG"
also eine konkrete pfadangabe.

die ich aber nicht bekomme von dem Gerät, in diesem Fall ein Sony Ericsson Handy.
ich bekomme im besten falle das: "DEVICE\Memory Stick (TM)\DCIM\100MSDCF\DSC00715.JPG".
das kommt aber nicht von der API, sondern habe ich mir aus den namen der ganzen parents und childs zusammengedocktert. tatsächlich bekomme ich nur "DSC00715.JPG" als Objekt, um genau zu sein ein ProtableDeviceObject, zurück.
das Objekt selber hat aber leider keine Methoden, mit denen ich das weiter auswerten oder verarbeiten kann.
 

Michael...

Top Contributor
Was stellt ein "ProtableDeviceObject" dar? So was ähnliches wie ein File Objekt. Damit kann man ja erst einmal nicht viel machen.
Ich würde aber mal vermuten, dass diese lib auch Klassen und Methoden zum auslesen der Daten bietet.
 

ForenDaddy

Aktives Mitglied
leider stellt es keine methoden zur Verfügung, die das können. sinnigerweise gibt es delete.
aber damit hat es sich auch schon.
der rest sind set/get/is.

hier mal der link zum projekt:
/trunk/java/src/ - jmtp - Java API to access MTP compatible portable media players - Google Project Hosting

mein code bisher. achtung, sieht hässlich wie die nacht aus.
damit erhalte ich eine liste aller dateien, die ich mit dem handy auf der speicherkarte abgelegt habe.
Java:
public static void jmtpTest() {
        // Create the manager
        PortableDeviceManager manager = new PortableDeviceManager();
        // Get list of connected devices
        PortableDevice devices[] = manager.getDevices();
        
        for(PortableDevice device : devices ) {
            // Open the device
            device.open();
            // If device is a MEDIA_PLAYER, not a USB-Stick or something else
            if ( device.getType() == PortableDeviceType.MEDIA_PLAYER ) {
                // Get Root Objects like internal Memory or memory card
                for(PortableDeviceObject object : device.getRootObjects()) {
                    // If object can save data (is storage)
                    if ( object instanceof PortableDeviceStorageObject && object.getName().toLowerCase().equals( "memory stick (tm)" ) ) {
                        PortableDeviceStorageObject storage = (PortableDeviceStorageObject)object;
                        // get list of files
                        PortableDeviceObject paths[] = storage.getChildObjects();
                        for ( PortableDeviceObject path : paths ) {
                            // search files for the image folder
                            if ( path.getOriginalFileName().toLowerCase().equals( "dcim" ) && path instanceof PortableDeviceFolderObject ) {
                                // get list of files again and search till you find no more folders
                                PortableDeviceFolderObject testPath = (PortableDeviceFolderObject)path;
                                PortableDeviceObject testPaths[] = testPath.getChildObjects();
                                for ( PortableDeviceObject folderAgain : testPaths ) {
                                    if ( folderAgain instanceof PortableDeviceFolderObject ) {
                                        PortableDeviceFolderObject testPathFolderAgain = (PortableDeviceFolderObject)folderAgain;
                                        PortableDeviceObject testPathsFolderAgain[] = testPathFolderAgain.getChildObjects();
                                        // the file as an object that i have found but don't know how to copy or move it.
                                        // path of file (filePathAfterAll) is not working for a FileInputStream with or withou object.getParent()
                                        for ( PortableDeviceObject thefile : testPathsFolderAgain ) {
                                            File filePathAfterAll = new File( object.getParent() + "/" +
                                                                              object.getName() + "/" +
                                                                              path.getOriginalFileName() + "/" +
                                                                              folderAgain.getOriginalFileName() + "/" +
                                                                              thefile.getOriginalFileName() );
                                            System.out.println( filePathAfterAll );
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
 

VfL_Freak

Top Contributor
Moin,

mein code bisher. achtung, sieht hässlich wie die nacht aus.
Jau :shock: :D

Java:
File filePathAfterAll = new File( object.getParent() + "/" + object.getName() + "/" +
                             path.getOriginalFileName() + "/" folderAgain.getOriginalFileName() + "/" +
                             thefile.getOriginalFileName() );
Wie sehen denn die Teile im Einzelnen aus, die Du hier zusammenbastelt ?

Gruß
Klaus

EDIT: BTW, in Deinem ersten Post waren es noch Backslashes "\" !!
 

ForenDaddy

Aktives Mitglied
obiger codeausschnitt gibt das hier aus:

"DEVICE\Memory Stick (TM)\DCIM\100MSDCF\DSC00715.JPG" (file wandelt slashes in backslashes).

Java:
object.getParent() + "/" + //-> DEVICE
object.getName() + "/" + //-> Memory Stick (TM)
path.getOriginalFileName() + "/" //-> DCIM
folderAgain.getOriginalFileName() + "/" + //-> 100MSDCF
thefile.getOriginalFileName() ); //-> DSC00715.JPG

das ist die datei die ich z.B. suche.
ich weiss also faktisch wo sie liegt, kann sie aber nicht anfassen.
ich hatte auch schon überlegt, ob der manager oder das device selber mir über die id der datei mir etwas an die hand gibt. aber konnte bisher nichts finden.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Iterationen einer XML-Datei in einem Objekt sichern Allgemeine Java-Themen 5
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
P Objekt einer Klasse erzeugen, die als String vorliegt Allgemeine Java-Themen 3
multiholle Objekt einer Klasse anhand eines String erzeugen Allgemeine Java-Themen 3
P Serialisiertes Objekt innerhalb einer XML Node Allgemeine Java-Themen 25
G Objekt einer inneren Klasse als Listener Allgemeine Java-Themen 3
V Aus String -> Objekt einer Klasse erzeugen Allgemeine Java-Themen 7
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
B objekt einer klasse dynamisch erzeugen Allgemeine Java-Themen 6
V Objekt einer Klasse, deren Name nur als String vorhanden Allgemeine Java-Themen 4
K Testen einer Klasse mit File Objekt als Parameter Allgemeine Java-Themen 6
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
el_niiinho13 Objekt auf der Konsole ausgeben lassen Allgemeine Java-Themen 8
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
SaftigMelo In einem Winkel Objekt bewegen Allgemeine Java-Themen 2
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
S Variable als Objekt Name Allgemeine Java-Themen 3
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
T Objekt in Array packen Allgemeine Java-Themen 6
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M Klassen Objekt weiter geben Allgemeine Java-Themen 1
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
S Applet Überprüfen ob ein Objekt angeklickt wurde Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
K Textdatei als Objekt Allgemeine Java-Themen 4
Viktim Classenname zu Objekt Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
J OOP Überwachen, ob ein Objekt erzeugt wird Allgemeine Java-Themen 9
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
F Neues Objekt aus .CSV definition Allgemeine Java-Themen 3
K Methoden Objekt wird nicht erkannt Allgemeine Java-Themen 11
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
T Objekt kontaktiert seinen "erzeuger" Allgemeine Java-Themen 5
S Objekt orientierte Programmierung Allgemeine Java-Themen 7
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
T WeakReference/PhantomReference: Mitbekommen WELCHES Objekt nun GC'ed wird Allgemeine Java-Themen 2
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
L Klassen Polymorphie:2 Attribute gleichen Namens in einem Objekt Allgemeine Java-Themen 6
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
V Objekt löschen Allgemeine Java-Themen 7
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
M neues Objekt speichern, nicht Referenz Allgemeine Java-Themen 10
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
D Eigenen Objekt Pool Allgemeine Java-Themen 15
C blueJ: Objekt wird nicht in Objektleiste angezeigt Allgemeine Java-Themen 8
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
U Konstante in Objekt definieren Allgemeine Java-Themen 6
D this mit Objekt überschreiben Allgemeine Java-Themen 17
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
E Objekt erstellen Allgemeine Java-Themen 7
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben