java程序:从键盘接收一个文件夹路径, 删除该文件夹及其里面的子文件,不明白里面的空文件夹是怎样删除的
发布网友
发布时间:2022-05-13 09:38
我来回答
共2个回答
热心网友
时间:2023-10-04 09:36
空文件夹的删除与不空文件夹是一样的。
解释如下:
1 private static void delete(File dir) throws IOException {
// 获取所有子文件
2File[] subFiles = dir.listFiles();
// 遍历所有子文件
3if (subFiles != null)
4for (File subFile : subFiles)
5if (subFile.isFile())
6subFile.delete(); // 如果是文件就删除
7else
8delete(subFile); // 如果是文件夹就递归 这里进入了子文件夹中
// 所有子文件都删除之后, 删除当前文件夹
9dir.delete();
10}
对于不空文件夹,2行会得到其子文件和文件夹,之后在3-8行递归删除其子文件和文件夹,待子文件和文件夹删除后9行删除这个文件夹本身。
对于空文件夹,2行得到的字文件和文件夹为null,3行进行判断后4-8行不执行,直接执行9行删除文件夹本身,就能把该空文件夹删除。
实质上一个不空的文件执行完8行以后,已经删除了所有字文件和文件夹,就成了空文件夹,9行删除的一直都是空文件夹。
空文件是不包含任何内容的文件夹,但这并不表明该文件夹的路径为null。所以1行程序入口处的参数dir是有效的,空文件夹参数也能够正确执行。
热心网友
时间:2023-10-04 09:36
两个当然不一样啦