Điều này (Cố gắng xóa tất cả các tệp phụ và thư mục con bao gồm thư mục được cung cấp) :
- Nếu
File
, xóa
- Nếu
Empty Directory
, xóa
- nếu
Not Empty Directory
, gọi xóa một lần nữa với thư mục con, lặp lại 1 đến 3
thí dụ:
File externalDir = Environment.getExternalStorageDirectory()
Utils.deleteAll(externalDir); //BE CAREFUL.. Will try and delete ALL external storage files and directories
Để có quyền truy cập vào Thư mục lưu trữ ngoài, bạn cần có các quyền sau:
(Sử dụng ContextCompat.checkSelfPermission
và ActivityCompat.requestPermissions
)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Phương pháp đệ quy:
public static boolean deleteAll(File file) {
if (file == null || !file.exists()) return false;
boolean success = true;
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File f : files) {
if (f.isDirectory()) {
success &= deleteAll(f);
}
if (!f.delete()) {
Log.w("deleteAll", "Failed to delete " + f);
success = false;
}
}
} else {
if (!file.delete()) {
Log.w("deleteAll", "Failed to delete " + file);
success = false;
}
}
} else {
if (!file.delete()) {
Log.w("deleteAll", "Failed to delete " + file);
success = false;
}
}
return success;
}