我正在尝试在硬件背面删除我的设备文件夹的所有内容,但它没有发生?
以下是我的尝试:
@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");
}
文档说它必须是空的...所以我该怎么办?
答案 0 :(得分:3)
如果您的路径包含文件,那么您可以删除但您的路径包含文件夹,那么此文件夹必须为空,因此您首先必须删除文件夹中的所有文件并删除特定文件夹。
以下是示例代码。
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);