#android #camera #delete-file
#Android #камера #удалить-файл
Вопрос:
Я пытаюсь удалить все содержимое папки моего устройства при аппаратном нажатии назад, но этого не происходит?
Вот что я пытаюсь:
@Override
public void onBackPressed() {
deleteFileFromDirectory();
finish();
}
public void deleteFileFromDirectory()
{
File mediaStorageDir = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
"MyCameraApp");
if (mediaStorageDir.exists()) {
isdeleted = mediaFile.delete();
System.out.println("File deleted :" isdeleted);//gives false
}
else
System.out.println("Directory not exist");
}
В документации указано, что оно должно быть пустым… итак, что мне делать?
Комментарии:
1. Вы не пытаетесь удалить папку?
2. Да, я пытаюсь удалить папку! @yygyt
3. Ответ CapDroid, похоже, решает вашу проблему.
Ответ №1:
Если ваш путь содержит файл, то вы можете удалить, но ваш путь содержит папку, тогда эта папка должна быть пустой, поэтому сначала вам нужно удалить все файлы из папки и удалить определенную папку.
Вот пример кода.
public void DeleteRecursive(String strPath) {
File fileOrDirectory = new File(strPath);
if (fileOrDirectory.isDirectory()){
for (File child : fileOrDirectory.listFiles())
DeleteRecursive(child.getPath());
fileOrDirectory.delete();
}else{
fileOrDirectory.delete();
}
}
просто вызовите этот метод и передайте свой путь к sdcard в параметре.
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) "MyCameraApp";
DeleteRecursive(path);