Wie konvertiere ich am einfachsten von a file:android.net.Uri zu einem File bei Android?
Habe folgendes versucht aber es geht nicht:
final File file = new File(Environment.getExternalStorageDirectory(), "read.me");
Uri uri = Uri.fromFile(file);
File auxFile = new File(uri.toString());
assertEquals(file.getAbsolutePath(), auxFile.getAbsolutePath());
Hier meine Lösung!! Es funktioniert gut! stackoverflow.com/questions/2789276/…
– Cesaren
4. April 2012 um 14:06 Uhr
Siehe stackoverflow.com/questions/5657411/…
– Zafirk
2. November 2014 um 8:00 Uhr
Was macht assertEquals?
– Huzaifa Asif
30. Mai 2019 um 0:16 Uhr
Uri.fromFile Kontext funktioniert bei mir einfach nicht 🙁
– Bucht
6. September 2019 um 7:31 Uhr
Adil Hussein
Was du willst ist…
new File(uri.getPath());
… und nicht…
new File(uri.toString());
Notiz:uri.toString() gibt einen String im Format zurück: "file:///mnt/sdcard/myPicture.jpg"wohingegen uri.getPath() gibt einen String im Format zurück: "/mnt/sdcard/myPicture.jpg".
Was ist der Unterschied zwischen den beiden? Was macht toString tun?
– Merlyn Morgan-Graham
4. Dezember 2011 um 0:19 Uhr
url.toString() gibt einen String im folgenden Format zurück: “file:///mnt/sdcard/myPicture.jpg”, wohingegen url.getPath() gibt einen String in folgendem Format zurück: “/mnt/sdcard/myPicture.jpg”, dh ohne vorangestellten Schematyp.
– Adil Hussain
4. Dezember 2011 um 14:53 Uhr
Wenn der URI ein Images.Media.EXTERNAL_CONTENT_URI (z. B. von Intent.ACTION_PICK für die Galerie) ist, müssen Sie ihn wie in stackoverflow.com/q/6935497/42619 nachschlagen
– Kleiber
13. Januar 2012 um 4:15 Uhr
@Chlebta schau dir eine Bibliothek namens an Picasso zum einfachen Laden von Dateien (sogar URLs) in ImageViews.
– Virat Singh
10. Juli 2015 um 17:46 Uhr
Meistens bekomme ich open failed: ENOENT (No such file or directory) Wenn ich versuche, die mit dieser Datei angegebene Datei zu öffnen. Auch wenn der Uri beispielsweise der Inhalts-URI eines Bildes ist, funktioniert es definitiv nicht.
Dies sollte viel, viel mehr positiv bewertet werden. ContentResolver ist das, was Sie sich anscheinend standardmäßig ansehen, um den Pfad von Android.Net.Uri aufzulösen.
– Mike Makarow
1. Juni 2019 um 16:48 Uhr
Ich möchte eine weitere UpVote hinzufügen, aber es stellt sich heraus, dass ich dies nur einmal tun kann!
– Xenolion
21. Mai 2020 um 10:46 Uhr
Wir haben eine Datei aus einer Auswahl ausgewählt und müssen die Datei dann zuerst kopieren? :/
– M. Usman Khan
22. Juli 2020 um 7:18 Uhr
@M.UsmanKhan es kommt darauf an. Wenn Sie die Datei später verwenden möchten, kopieren Sie sie. Andernfalls verwenden Sie es einfach als Eingabestrom. Sie sollten sich nicht darauf verlassen, dass andere Apps die Datei für Sie aufbewahren.
– VaiTon
8. Juli 2021 um 15:58 Uhr
@ VaiTon86 . Wir wollen ein File-Objekt von URI, ohne die Datei zu kopieren.
– M. Usman Khan
24. Juli 2021 um 10:31 Uhr
Sankt Berde
Nach langem Suchen hat bei mir folgendes funktioniert:
managedQuery ist jetzt veraltet. verwenden getContentResolver().query(...) stattdessen, was auf API 11+ funktioniert. Fügen Sie eine Bedingung für Geräte hinzu, die älter als API 11 sind.
– Kyle Falconer
27. Mai 2014 um 15:05 Uhr
Dies gibt mir aus irgendeinem Grund null zurück. Und mein Android-URI gibt so etwas zurück: {content://com.android.providers.media.documents/document/image%3A2741} Android.Net.UriInvoker
– erkinyldz
10. Juli 2015 um 8:32 Uhr
Dies ist keine gute Lösung, da es nicht auf allen Plattformen funktioniert. Einige Geräte füllen diese Spalte nicht einmal aus. Ich empfehle, dies dem Inhaltsanbieter zu überlassen, wie von @CommonWare in der vorherigen Antwort vorgeschlagen
– Liran Cohen
25. Juli 2016 um 15:55 Uhr
Dies gilt nur für Bilddateien, was ist mit anderen?
– Pratibha sarve
9. Juni 2017 um 10:10 Uhr
Stellen Sie sicher, dass Sie Ihren URI von Intent.ACTION_PICK und nicht von Intent.ACTION_GET_CONTENT erhalten, da Letzteres kein MediaStore.Images.Media.DATA enthält
– Denys Lobur
4. Juni 2018 um 14:03 Uhr
Hemant Kauschik
Android + Kotlin
Abhängigkeit für Kotlin-Android-Erweiterungen hinzufügen:
Dies funktioniert, aber wenn ich ein Bild aus der Galerie auswähle, wird ein Fehler in der folgenden Zeile ausgegeben: InputStream inputStream = context.getContentResolver().openInputStream(uri);
– Vahid Akbari
16. November 2018 um 0:32 Uhr
Es hat sehr gut funktioniert, aber es löst FileNotFoundException auf einigen Android-Geräten aus.
– viswajit76
17. November 2018 um 4:11 Uhr
Verwenden Sie diesen Code, um ein Foto von der Kamera auszuwählen stackoverflow.com/a/51095098/7008132
– viswajit76
6. Januar 2020 um 3:31 Uhr
EDIT: Entschuldigung, ich hätte vorher besser testen sollen. Das sollte funktionieren:
new File(new URI(androidURI.toString()));
URI ist java.net.URI.
Dies funktioniert, aber wenn ich ein Bild aus der Galerie auswähle, wird ein Fehler in der folgenden Zeile ausgegeben: InputStream inputStream = context.getContentResolver().openInputStream(uri);
– Vahid Akbari
16. November 2018 um 0:32 Uhr
Es hat sehr gut funktioniert, aber es löst FileNotFoundException auf einigen Android-Geräten aus.
– viswajit76
17. November 2018 um 4:11 Uhr
Verwenden Sie diesen Code, um ein Foto von der Kamera auszuwählen stackoverflow.com/a/51095098/7008132
– viswajit76
6. Januar 2020 um 3:31 Uhr
Nichts davon funktioniert bei mir. Ich habe festgestellt, dass dies die funktionierende Lösung ist. Aber mein Fall ist spezifisch für Bilder.
Das sollte eine Antwort sein! 🙂 Ich habe es auf API 25 getestet.
– Ironie
19. Dezember 2017 um 5:31 Uhr
Beachten Sie, dass diese Technik auf Android Q verboten ist. Sie können nicht mehr auf die DATA-Spalte zugreifen (und das war zunächst ein unzuverlässiger Ansatz).
– CommonsWare
24. Mai 2019 um 10:59 Uhr
9166600cookie-checkDatei konvertieren: Uri in Datei in Androidyes
Hier meine Lösung!! Es funktioniert gut! stackoverflow.com/questions/2789276/…
– Cesaren
4. April 2012 um 14:06 Uhr
Siehe stackoverflow.com/questions/5657411/…
– Zafirk
2. November 2014 um 8:00 Uhr
Was macht assertEquals?
– Huzaifa Asif
30. Mai 2019 um 0:16 Uhr
Uri.fromFile Kontext funktioniert bei mir einfach nicht 🙁
– Bucht
6. September 2019 um 7:31 Uhr