java程序:从键盘接收一个文件夹路径, 删除该文件夹及其里面的子文件,不明白里面的空文件夹是怎样删除的

java程序:从键盘接收一个文件夹路径, 删除该文件夹及其里面的子文件,不明白里面的空文件夹是怎样删除的,第1张

文件的删除与不空文件夹是一样的运物。

解释如下:

1private static void delete(File dir) throws IOException {

// 获取所有子文件

2 File[] subFiles = dir.listFiles()

// 遍历所有子文件

3 if (subFiles != null)

4 for (File subFile : subFiles)

5 if (subFile.isFile())

6 subFile.delete()// 如果是文件就删除

7 else

8 delete(subFile)// 如果是文件夹就递归 这里进入了子文件夹中

// 所有子文件都删除之后, 删除当前文件夹

9 dir.delete()

10 }

对于不空文件夹,2行会得到其子文件和文件夹,之后在3-8行递归删毕早除其子文件和文手悄雀件夹,待子文件和文件夹删除后9行删除这个文件夹本身。

对于空文件夹,2行得到的字文件和文件夹为null,3行进行判断后4-8行不执行,直接执行9行删除文件夹本身,就能把该空文件夹删除。

实质上一个不空的文件执行完8行以后,已经删除了所有字文件和文件夹,就成了空文件夹,9行删除的一直都是空文件夹。

空文件是不包含任何内容的文件夹,但这并不表明该文件夹的路径为null。所以1行程序入口处的参数dir是有效的,空文件夹参数也能够正确执行。

文件,File?用代银稿含码来解释吧。

1.File f = null文件这个对象根本没有定义,只是声明了下。

2.File f = new File("xxxx")文件有这个对象,但是是空的,找不到的。

我觉锋笑得差不多是这个意思,null是根本不存敬让在,只是声明。而文件不存在,是指文件有,但是内容是错误的。没有初始化正确。


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

原文地址:https://54852.com/tougao/8170709.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存