Android 刪除已知路徑的文件或文件夾


轉載:https://blog.csdn.net/qq_31939617/article/details/89414714
【功能】
delete(String delFile):刪除文件或文件夾

deleteSingleFile(String filePath$Name):刪除單文件

deleteDirectory(String filePath):刪除文件夾及其中的內容

【說明】
1、delete方法調用了deleteSingleFile方法和deleteDirectory方法;

2、deleteDirectory方法調用了deleteSingleFile方法;

3、三個方法放在一起,使用時使用delete方法即可,也可以單獨使用deleteSingleFile方法和deleteDirectory方法。

DeleteUtil.class

import android.util.Log;
import android.widget.Toast;

import java.io.File;

public class DeleteUtil {

/** 刪除文件,可以是文件或文件夾
* @param delFile 要刪除的文件夾或文件名
* @return 刪除成功返回true,否則返回false
*/
public boolean delete(String delFile) {
File file = new File(delFile);
if (!file.exists()) {
Toast.makeText(MyApplication.getContext(), "刪除文件失敗:" + delFile + "不存在!", Toast.LENGTH_SHORT).show();
return false;
} else {
if (file.isFile())
return deleteSingleFile(delFile);
else
return deleteDirectory(delFile);
}
}

/** 刪除單個文件
* @param filePath$Name 要刪除的文件的文件名
* @return 單個文件刪除成功返回true,否則返回false
*/
private boolean deleteSingleFile(String filePath$Name) {
File file = new File(filePath$Name);
// 如果文件路徑所對應的文件存在,並且是一個文件,則直接刪除
if (file.exists() && file.isFile()) {
if (file.delete()) {
Log.e("--Method--", "Copy_Delete.deleteSingleFile: 刪除單個文件" + filePath$Name + "成功!");
return true;
} else {
Toast.makeText(MyApplication.getContext(), "刪除單個文件" + filePath$Name + "失敗!", Toast.LENGTH_SHORT).show();
return false;
}
} else {
Toast.makeText(MyApplication.getContext(), "刪除單個文件失敗:" + filePath$Name + "不存在!", Toast.LENGTH_SHORT).show();
return false;
}
}

/** 刪除目錄及目錄下的文件
* @param filePath 要刪除的目錄的文件路徑
* @return 目錄刪除成功返回true,否則返回false
*/
private boolean deleteDirectory(String filePath) {
// 如果dir不以文件分隔符結尾,自動添加文件分隔符
if (!filePath.endsWith(File.separator))
filePath = filePath + File.separator;
File dirFile = new File(filePath);
// 如果dir對應的文件不存在,或者不是一個目錄,則退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
Toast.makeText(MyApplication.getContext(), "刪除目錄失敗:" + filePath + "不存在!", Toast.LENGTH_SHORT).show();
return false;
}
boolean flag = true;
// 刪除文件夾中的所有文件包括子目錄
File[] files = dirFile.listFiles();
for (File file : files) {
// 刪除子文件
if (file.isFile()) {
flag = deleteSingleFile(file.getAbsolutePath());
if (!flag)
break;
}
// 刪除子目錄
else if (file.isDirectory()) {
flag = deleteDirectory(file
.getAbsolutePath());
if (!flag)
break;
}
}
if (!flag) {
Toast.makeText(MyApplication.getContext(), "刪除目錄失敗!", Toast.LENGTH_SHORT).show();
return false;
}
// 刪除當前目錄
if (dirFile.delete()) {
Log.e("--Method--", "Copy_Delete.deleteDirectory: 刪除目錄" + filePath + "成功!");
return true;
} else {
Toast.makeText(MyApplication.getContext(), "刪除目錄:" + filePath + "失敗!", Toast.LENGTH_SHORT).show();
return false;
}
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM