Android 删除文件总是返回false? 先看看你删的文件是否为文件夹

Android 删除文件总是返回false? 先看看你删的文件是否为文件夹,第1张

概述删除文件夹的正确姿势今天遇到一个坑Filefile=newFile("...");booleanisDeleted=file.delete();//isDeletedisfalse当file为文件夹的时候,直接调用delete是无法删除的,我们应该先把子文件逐个删去,最后再删去该空目录网上找到的代码,亲测可用,工具类的几个方法贴 删除文件夹的正确姿势

今天遇到一个坑

file file = new file("...");boolean isDeleted = file.delete();//isDeleted is false

当file为文件夹的时候,直接调用delete是无法删除的,我们应该先把子文件逐个删去,最后再删去该空目录

网上找到的代码,亲测可用,工具类的几个方法贴在下方

1. deleteFolder(String filePath)根据路径删除指定的目录或文件夹,无论存在与否

2.deletefile(String filePath)删除单个文件

3.deleteDirectory(String filePath)删除文件夹以及目录下的文件

	/**     *  根据路径删除指定的目录或文件,无论存在与否     *@param filePath  要删除的目录或文件     *@return 删除成功返回 true,否则返回 false。     */    public static boolean deleteFolder(String filePath) {        file file = new file(filePath);        if (!file.exists()) {            return false;        } else {            if (file.isfile()) {                // 为文件时调用删除文件方法                return deletefile(filePath);            } else {                // 为目录时调用删除目录方法                return deleteDirectory(filePath);            }        }    }    /**     * 删除单个文件     * @param   filePath    被删除文件的文件名     * @return 文件删除成功返回true,否则返回false     */    public static boolean deletefile(String filePath) {        file file = new file(filePath);        if (file.isfile() && file.exists()) {            return file.delete();        }        return false;    }    /**     * 删除文件夹以及目录下的文件     * @param   filePath 被删除目录的文件路径     * @return  目录删除成功返回true,否则返回false     */    public static boolean deleteDirectory(String filePath) {        boolean flag = false;        //如果filePath不以文件分隔符结尾,自动添加文件分隔符        if (!filePath.endsWith(file.separator)) {            filePath = filePath + file.separator;        }        file dirfile = new file(filePath);        if (!dirfile.exists() || !dirfile.isDirectory()) {            return false;        }        flag = true;        file[] files = dirfile.Listfiles();        //遍历删除文件夹下的所有文件(包括子目录)        for (int i = 0; i < files.length; i++) {            if (files[i].isfile()) {                //删除子文件                flag = deletefile(files[i].getabsolutePath());                if (!flag) break;            } else {                //删除子目录                flag = deleteDirectory(files[i].getabsolutePath());                if (!flag) break;            }        }        if (!flag) return false;        //删除当前空目录        return dirfile.delete();    }
总结

以上是内存溢出为你收集整理的Android 删除文件总是返回false? 先看看你删的文件是否为文件夹全部内容,希望文章能够帮你解决Android 删除文件总是返回false? 先看看你删的文件是否为文件夹所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存