Ich erstelle eine Datei, die als Anhang an eine E-Mail gesendet werden soll. Jetzt möchte ich das Bild nach dem Senden der E-Mail löschen. Gibt es eine Möglichkeit, die Datei zu löschen?
Ich habe es versucht, myFile.delete();
aber die Datei wurde nicht gelöscht.
Ich verwende diesen Code für Android, daher ist die Programmiersprache Java, wobei die üblichen Android-Methoden für den Zugriff auf die SD-Karte verwendet werden. Ich lösche die Datei in der onActivityResult
Methode, wenn Intent
nach dem Senden einer E-Mail eine auf den Bildschirm zurückkehrt.
android
android-sdcard
Schlamm
quelle
quelle
Antworten:
Dabei ist selectedFilePath der Pfad der Datei, die Sie löschen möchten - zum Beispiel:
quelle
Außerdem müssen Sie eine Berechtigung erteilen, wenn Sie> 1.6 SDK verwenden
in
AndroidManifest.xml
Dateiquelle
ContentResolver
Ändern Sie für Android 4.4+
Apps sind nicht erlaubt zu schreiben (löschen, ändern ...) zu externen Speicher außer ihrer paketspezifische Verzeichnisse.
In der Android-Dokumentation heißt es:
Allerdings böse Abhilfe besteht (siehe Code unten) . Getestet auf Samsung Galaxy S4, aber dieses Update funktioniert nicht auf allen Geräten. Ich würde auch nicht damit rechnen, dass diese Problemumgehung in zukünftigen Versionen von Android verfügbar ist.
Es gibt einen großartigen Artikel, in dem die Änderung der externen Speicherberechtigungen (4.4+) erläutert wird .
Sie können lesen Sie hier mehr über Abhilfe . Der Quellcode für die Problemumgehung stammt von dieser Site .
quelle
false
und löscht die Datei nicht :-(Android Context hat die folgende Methode:
Ich glaube, dies wird mit den oben aufgeführten richtigen App-Prämissen das tun, was Sie wollen.
quelle
context.deleteFile(filename);
Löschen Sie rekursiv alle untergeordneten Elemente der Datei ...
quelle
Das funktioniert bei mir: (Bild aus Galerie löschen)
quelle
Dieser Code wird Ihnen helfen. Und im Android-Manifest müssen Sie die Erlaubnis erhalten, Änderungen vorzunehmen.
quelle
file.exists:true file.isDirectory:true file.canRead:false file.canWrite:false
Versuche dies.
von Apache Commons
quelle
Entschuldigung: In meinem Code ist zuvor ein Fehler aufgrund der Site-Validierung aufgetreten.
Ich denke ist klar ... Zuerst müssen Sie Ihren Dateispeicherort kennen. Zweitens
Environment.getExternalStorageDirectory()
ist eine Methode, die Ihr App-Verzeichnis erhält. Zuletzt die Klasse Datei, die Ihre Datei behandelt ...quelle
Ich hatte ein ähnliches Problem mit einer Anwendung, die unter 4.4 ausgeführt wird. Was ich getan habe, war eine Art Hack.
Ich habe die Dateien umbenannt und sie in meiner Anwendung ignoriert.
dh.
quelle
Das hat bei mir funktioniert.
quelle
quelle
Sie können eine Datei wie folgt löschen:
quelle
Oder versuchen Sie Folgendes:
quelle