天天看点

递归查找文件和递归删除文件

getTotalSpace();方法:

此方法可以得到硬盘的总大小,得到的大小单位是字节。

getFreeSpace();方法:

此方法可以得到硬盘剩余的可用空间大小,大小单位也是字节。

还可以利用以上的方法先得到硬盘的总大小然后再减去硬盘的剩余可用空间大小,就可以得到硬盘的已用大小。

代码示例:

<a href="https://s5.51cto.com/oss/201710/26/b9c7027b5f7c523972d62cb17b2dd25b.png" target="_blank"></a>

运行结果:

<a href="https://s1.51cto.com/oss/201710/26/959b9f5ab82a99244e3be771513d6934.png" target="_blank"></a>

list方法:

此方法可以列出目录下的所有文件和文件夹,返回的是文件/文件夹的名称,是字符串类型的。

  代码示例:

<a href="https://s2.51cto.com/oss/201710/26/9ef6c6704cde28063d71593d362a9b3d.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/26/0e1acd7aeeedae473da012676552b1aa.png" target="_blank"></a>

isDirectory()判断是否是文件夹方法,此方法返回的是boolean值,可以利用这个方法判断列出来的哪些是文件哪些是文件夹。

<a href="https://s2.51cto.com/oss/201710/26/ba58d1a3526bee1eed5a1bc8a6304d43.png" target="_blank"></a>

<a href="https://s1.51cto.com/oss/201710/26/fa5e36dedffadec6a489fd940f69ac0b.png" target="_blank"></a>

listFiles();也可以拿出一个路径下的文件目录,不过这个方法和list不一样,这个方法返回的是File对象。

<a href="https://s2.51cto.com/oss/201710/27/44601a2aca695a31d9a8d28c68793c26.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/26/6906b31f56261ba8c01df46bc3a997eb.png" target="_blank"></a>

isFile()判断是否是文件方法,此方法返回的是boolean值,可以利用这个方法判断列出来的哪些是文件哪些是文件夹。

<a href="https://s2.51cto.com/oss/201710/26/5a7e5a6dd94a3a60d06bb2144b754e65.png" target="_blank"></a>

<a href="https://s4.51cto.com/oss/201710/26/0106cf05d618f84d6889fbd83376ed95.png" target="_blank"></a>

FilenameFilter()文件名称过滤器,这是一个接口要重写方法,这个方法能过滤出自己想要的文件或文件夹。

<a href="https://s1.51cto.com/oss/201710/26/44e8f0bb610ff9339bcf12a5d8a0f249.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/26/6d632a37cf8d5fd5faf68cbcdc859f8c.png" target="_blank"></a>

使用这个方法如果return false的话是不会显示出数据的,return true则会显示所有的数据。

<a href="https://s2.51cto.com/oss/201710/26/2a46bad0bd1f9cfc459025cd09bb894a.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/26/6afccecd5e010a62d680a47d13586778.png" target="_blank"></a>

FileFilter()返回的是File类型,效果和FilenameFilter差不多,只不过前者返回的是File类型,后者返回的是String类型。前者能使用File的操作方法例如获得文件路径、判断是否是文件、获得文件的大小。后者因为只是字符串类型,所以只能或得文件的名称。同样的两者都是起到过滤的作用:

<a href="https://s4.51cto.com/oss/201710/26/9335d8ce73c0b12b221dd82a7c79a4ba.png" target="_blank"></a>

<a href="https://s1.51cto.com/oss/201710/26/e5371105e55b1c324ee41eda9ad256a1.png" target="_blank"></a>

递归查找方法:

想要查找某个目录或者某个盘符下的全部文件或者文件夹,都可以利用递归来完成。

<a href="https://s5.51cto.com/oss/201710/26/c34fad0592d24c0909e7d5adf15b601b.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/26/fbe00a02bd514aa184ba79294c03cfdf.png" target="_blank"></a>

递归删除方法:

同样的利用递归一个个去找文件夹,找到了就直接删除,因为文件夹删除了里面的文件也删除了,也就不需要再去先找到文件删除再删除文件夹,如果先找到文件删除再删除文件夹这样就多了一步操作了。

<a href="https://s4.51cto.com/oss/201710/26/e85b4a5630ffb2090088d3c537f76e03.png" target="_blank"></a>

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976615,如需转载请自行联系原作者

继续阅读