Я использовал внутреннее хранилище Android для сохранения файла для своего приложения (используя openFileOutput
), но я хотел бы удалить этот файл, возможно ли и как?
Как удалить внутренний файл хранилища в android?
Ответ 1
File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
Ответ 2
Я знаю, что это немного похоже на старое, но docs говорят:
deleteFile("filename");
а не:
File.delete();
Что, если вы уже используете:
getFilesDir();
имеет смысл.
Ответ 3
Вы всегда должны удалять файлы, которые вам больше не нужны. Самый простой способ удалить файл - это открыть открытый вызов ссылки на файл delete().
myFile.delete()
;
Если файл сохранен во внутренней памяти, вы также можете попросить контекст найти и удалить файл, вызвав deleteFile():
myContext.deleteFile(fileName);
Примечание. Когда пользователь удаляет ваше приложение, система Android удаляет следующее:
Все файлы, сохраненные на внутреннем хранилище
Все файлы, сохраненные на внешнем хранилище, с помощью getExternalFilesDir()
.
Тем не менее, вы должны вручную удалять все кэшированные файлы, созданные с помощью getCacheDir()
, на регулярной основе, а также регулярно удалять другие файлы, которые вам больше не нужны.
Источник: http://developer.android.com/training/basics/data-storage/files.html
Ответ 4
Использовать метод delete
File
Ответ 5
new File(mUri.toString).delete();
Ответ 6
Если вы хотите удалить все файлы из папки, используйте следующую функцию:
private void deleteTempFolder(String dir) {
File myDir = new File(Environment.getExternalStorageDirectory() + "/"+dir);
if (myDir.isDirectory()) {
String[] children = myDir.list();
for (int i = 0; i < children.length; i++) {
new File(myDir, children[i]).delete();
}
}
}
Папка должна присутствовать на хранении. Если нет, мы можем проверить для него еще одно кодирование.
if (myDir.exists() && myDir.isDirectory()) {
//write same defination for it.
}
Ответ 7
void clearMyFiles() {
File[] files = context.getFilesDir().listFiles();
if(files != null)
for(File file : files) {
file.delete();
}
}