2010-08-24 3 views

ответ

73
File dir = getFilesDir(); 
File file = new File(dir, "my_filename"); 
boolean deleted = file.delete(); 
17

Я знаю, что это немного из Олди, но 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

1

Если вы хотите удалить все файлы из папки используйте следующую функцию:

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. 
} 
0
void clearMyFiles() { 
    File[] files = context.getFilesDir().listFiles(); 
    if(files != null) 
     for(File file : files) { 
      file.delete(); 
     } 
} 
+3

Этот ответ был помечен как низкого качества из-за его длины и содержания. Предложите добавить описание того, что он делает и как он отвечает на вопрос. –

Смежные вопросы