Ich versuche, im internen Speicher gespeicherte Bilder zu löschen. Ich habe mir das bisher ausgedacht:
File dir = getFilesDir();
File file = new File(dir, id+".jpg");
boolean deleted = file.delete();
Und dies ist aus einer anderen Frage, die beantwortet wurde mit :
File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
Mein Beispiel gibt immer false zurück. Ich kann die Datei fx 2930.jpg
in DDMS in Eclipse sehen.
inputHandle.getImgPath(id)
ist filePathHaben Sie Context.deleteFile () ausprobiert ?
quelle
new OutputStreamWriter(context.openFileOutput(fileName, Context.MODE_PRIVATE)).write(data);
Das funktioniert bei mir:
quelle
Der Code
File dir = getFilesDir();
funktioniert nicht, da dies eine Anforderung für ein Dateiobjekt ist. Sie versuchen, den String abzurufen, der den Pfad zu Ihrem Verzeichnis deklariert. Daher müssen Sie 'dir' als String deklarieren und dann anfordern, dass der Konstruktor, der Zugriff auf diese Informationen hat, den absoluten Pfad des Verzeichnisses in String-Form zurückgibt .quelle
Sie können auch verwenden:
file.getCanonicalFile().delete();
quelle
Hast du es versucht
getFilesDir().getAbsolutePath()
?Anscheinend haben Sie Ihr Problem behoben, indem Sie das Dateiobjekt mit einem vollständigen Pfad initialisiert haben. Ich glaube, das würde auch den Trick machen.
quelle
Dies ist ein altes Thema, aber ich werde meine Erfahrung hinzufügen, vielleicht findet jemand dies hilfreich
Lösung1:
Hier initialisiere ich den Content Resolver und lösche ihn mit einem übergebenen Parameter dieses URI
Lösung2 (meine erste Lösung von Kopf in dieser Zeit weiß ich das): Content Resolver existiert ...
Hoffe, dass dies für jemanden hilfreich sein wird, der gerne codiert
quelle
funktioniert in meinem Fall nicht.
gibt immer false zurück.
Das Problem wurde mithilfe des folgenden Codes behoben:
quelle