转载请注明出处,原文链接:https://blog.csdn.net/u013642500/article/details/80153517

【功能】

delete(String delFile):删除文件或文件夹

deleteSingleFile(String filePath$Name):删除单文件

deleteDirectory(String filePath):删除文件夹及其中的内容

【说明】

1、delete方法调用了deleteSingleFile方法和deleteDirectory方法;

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

2、三个方法放在一起,使用时使用delete方法即可,也可以单独使用deleteSingleFile方法和deleteDirectory方法。

【代码】

    /** 删除文件,可以是文件或文件夹     * @param delFile 要删除的文件夹或文件名     * @return 删除成功返回true,否则返回false     */    private boolean delete(String delFile) {        File file = new File(delFile);        if (!file.exists()) {            Toast.makeText(getApplicationContext(), "删除文件失败:" + 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(getApplicationContext(), "删除单个文件" + filePath$Name + "失败!", Toast.LENGTH_SHORT).show();                return false;            }        } else {            Toast.makeText(getApplicationContext(), "删除单个文件失败:" + 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(getApplicationContext(), "删除目录失败:" + 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(getApplicationContext(), "删除目录失败!", Toast.LENGTH_SHORT).show();            return false;        }        // 删除当前目录        if (dirFile.delete()) {            Log.e("--Method--", "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!");            return true;        } else {            Toast.makeText(getApplicationContext(), "删除目录:" + filePath + "失败!", Toast.LENGTH_SHORT).show();            return false;        }    }

【代码】

/** 删除文件,可以是文件或文件夹 * @param delFile 要删除的文件夹或文件名 * @return 删除成功返回true,否则返回false */private boolean delete(String delFile) {    File file = new File(delFile);    if (!file.exists()) {        Toast.makeText(getApplicationContext(), "删除文件失败:" + 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(getApplicationContext(), "删除单个文件" + filePath$Name + "失败!", Toast.LENGTH_SHORT).show();            return false;        }    } else {        Toast.makeText(getApplicationContext(), "删除单个文件失败:" + 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(getApplicationContext(), "删除目录失败:" + 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(getApplicationContext(), "删除目录失败!", Toast.LENGTH_SHORT).show();        return false;    }    // 删除当前目录    if (dirFile.delete()) {        Log.e("--Method--", "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!");        return true;    } else {        Toast.makeText(getApplicationContext(), "删除目录:" + filePath + "失败!", Toast.LENGTH_SHORT).show();        return false;    }}

更多相关文章

  1. Android(安卓)Service两种启动方式
  2. Android(安卓)setbackgroundcolor()方法的使用
  3. android studio 配置ffmpeg
  4. Android设置界面之Preference
  5. Android(安卓)认识EventBus到原理解析
  6. mac下反编译android apk
  7. Android(安卓)studio 3.1.2决解导入项目gradle build不通过问题
  8. Android(安卓)下载一个文件以及打开这个apk文件
  9. android开发之onCreate( )方法详解

随机推荐

  1. Qualcomm Android(安卓)display架构分析
  2. Notes on the implementation of encrypt
  3. Android(安卓)通过Intent调用系统功能和A
  4. Android(安卓)获取设备各种信息以及其它
  5. android 发送短信的两种方式
  6. 【Android】键盘的展开和收起
  7. Android(安卓)Service 的添加流程
  8. Android(安卓)中汉字转化为拼音
  9. android selector 的不能是空节点
  10. Android获得屏幕高度和状态栏高度