2015-03-27 2 views
1

У меня есть несколько папок на SD-карте. Я хочу удалить папки при закрытии активности i.e в обратном вызове onDestroy(). например: у меня есть folderA, folderB и FolderC. Я могу удалить folderA и FolderB. эта папка содержит файлы (.zip, .pdf и т. д.), но folderC, который я не могу удалить, содержит папки, подпапки и файлы. Ниже мой код.Удалить папки с SD-карты

deletUnZipedFiles(File file){ 
file = new File(MainActivity.root_sd,"/folderC"); 
if (file.isDirectory()) { 
    String[] children = file.list(); 
    for (int i=0; i<children.length; i++) { 
    boolean success = deletUnZipedFiles(new File(file, children[i])); 
    System.out.println("status of unziped delet"+success); 
    if (!success) { 
     return false; 
    } 
    } 
    } 
    // The directory is now empty so delete it 
//return file.delete(); 
} 

Почему folderC не удаляет. Я использую ту же процедуру для folderA и folderB.

Thanks

+0

Есть у добавил <использует-разрешение андроида: имя = «android.permission.WRITE_EXTERNAL_STORAGE» /> разрешение на андроид файл манифеста? –

+0

Почему вы прокомментировали это -> // return file.delete(); –

ответ

0

Вы можете использовать эту функцию для удаления папки. Вы должны передать объект файла, как:

File file = new File("C:\\A\\B"); 
DeleteRecursive(file); 

void DeleteRecursive(File fileOrDirectory) { 

if (fileOrDirectory.isDirectory()) 
    for (File child : fileOrDirectory.listFiles()) 
     DeleteRecursive(child); 

    fileOrDirectory.delete(); 

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