删除指定路径下的文件及文件夹

1、删除指定路径下的文件及文件夹是指将次路径下的的文件夹内(包含此文件夹)所有的文件及文件夹全部删除。

2、DeleteRuninFile中删除文件的代码主要在两个方法中,如下:

private boolean deleteDirectory(String filePath) {......};
private boolean deleteSingleFile(String filePath$Name) {......};

3、在private boolean deleteDirectory(String filePath) {};中使用的递归删除的方式将runin文件夹下包括runin文件的所有文件和文件夹删除,代码如下:

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(DeleteFileActivity.this, "删除目录失败:" + 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(DeleteFileActivity.this, "删除目录失败!", Toast.LENGTH_SHORT).show();
        return false;
    }
    // 删除当前目录
    if (dirFile.delete()) {
        Log.e(TAG, "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!");
        return true;
    } else {
        Toast.makeText(DeleteFileActivity.this, "删除目录:" + filePath + "失败!", Toast.LENGTH_SHORT).show();
        return false;
    }
}

4、private boolean deleteSingleFile(String filePath$Name) {};方法主要用于删除单个的文件,此方法在private boolean deleteDirectory(String filePath) {};中调用,如下:

 // 删除子文件
if (file.isFile()) {
    flag = deleteSingleFile(file.getAbsolutePath());
    if (!flag)
        break;
}

删除单个文件具体代码如下:

/** 删除单个文件
 * @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(TAG, "Copy_Delete.deleteSingleFile: 删除单个文件" + filePath$Name + "成功!");
            return true;
        } else {
            Toast.makeText(DeleteFileActivity.this, "删除单个文件" + filePath$Name + "失败!", Toast.LENGTH_SHORT).show();
            return false;
        }
    } else {
        Toast.makeText(DeleteFileActivity.this, "删除单个文件失败:" + filePath$Name + "不存在!", Toast.LENGTH_SHORT).show();
        return false;
    }
}

版权声明:本文为xiaodong_memeda原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。