Jestem na 4.4.2, próbuję usunąć plik (obraz) za pomocą URI. Oto mój kod:Jak programowo usuwać pliki w systemie Android?
File file = new File(uri.getPath());
boolean deleted = file.delete();
if(!deleted){
boolean deleted2 = file.getCanonicalFile().delete();
if(!deleted2){
boolean deleted3 = getApplicationContext().deleteFile(file.getName());
}
}
W tej chwili żadna z tych funkcji usuwania nie usuwa pliku. Ja również mam to w moim AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
Nie używam getCanonicalFile(), ale tylko File.delete() i działa dobrze na moim systemie. O ile Twoja ścieżka z URI nie jest poprawna. –
Moja ścieżka jest następująca: /external/images/media/2918 Czy to wygląda prawidłowo? –
... nie. coś takiego jak '/ mnt/sdcard/your_folder/your_file.png' robi. Jednak lepiej jest uzyskać ścieżkę zapisu przez 'getExternalDirectory'. Ostatnie, uprawnienie 'WRITE_EXTERNAL _...' zawiera 'READ_EXTERNAL _...' one. –