删除一个给定的目录,这上目录不为空目录,使用递归来实现java

删除一个给定的目录,这上目录不为空目录,使用递归来实现java

3个回答

public static void main(String[] args) {

    List<File> listFile=new ArrayList<File>();
    listFile=listFile("C:/Users/熊浪/Desktop/测试", "", "", listFile);//获取所有的文件
    for (int i = 0; i < listFile.size(); i++) {
        System.out.println(listFile.get(i));
        listFile.get(i).delete();
    }
}

/**
 * 获取某目录下包含某文件名的所有File
 * 
 * @param dir
 * @param prefix
 * @return
 */
public static List<File> listFile(String dir, String prefix, String startStr, List<File> listFile) {
    try {
        File file = new File(dir);
        if (!file.isDirectory()) {
            return listFile;
        }
        File[] files = file.listFiles();
        for (int i = 0, len = files.length; i < len; i++) {
            if (files[i].isDirectory()) {
                listFile.add(files[i]);
                listFile(files[i].getPath(), prefix, startStr, listFile);
            } else {
                if (files[i].getName().contains(prefix)) {
                    if (startStr == null) {
                        listFile.add(files[i]);
                    }
                    if (startStr != null && files[i].getName().startsWith(startStr)) {
                        listFile.add(files[i]);
                    }
                }
            }
        }
        listFile.add(file);
    } catch (Exception e) {
        e.getMessage();
    }
    return listFile;
}

先删除里面的文件

Java中通过递归调用删除文件夹下所有文件。http://blog.sina.com.cn/s/blog_79333b2c0100xiu4.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问