1 问题
一般操作系统都会装在C盘,所以会有一个C:\WINDOWS目录,遍历这个目录下所有的文件(不用遍历子目录),并找出这些文件里,最大的和最小(非0)的那个文件打印出他们的文件名。
2 方法
2.1通过将给定的路径名字符串创建新的File实例。
2.2将子文件转化成数组,设置最大文件长度和最小文件长度属性。
2.3 for循环遍历文件夹,第一个判断如果文件长度大于max,就把最大文件和最大文件长度替换;第二个判断如果文件的长度小于min且大于0,就把最小文件和最小文件长度替换。
2.4打印文件地址。
2.5 判断文件夹转化为数组类型后是否为空指针。
package IO; import java.io.File; public class fc{ public static void main(String[] args) { File fc=new File("c:/windows"); new fc().wjdx(fc); } public void wjdx(File wj) { File[] c=wj.listFiles();//将子文件转化成数组 int t1=0,t2=0; long max=0; long min=Long.MAX_VALUE; for(int i=0;i<c.length;i++) { if(c[i].length()>max) {max=c[i].length();t1=i;} if(c[i].length()<min&&c[i].length()>0) {min=c[i].length();t2=i;} } System.out.println("目前地址为"+c[t1].getParent()); System.out.println("最大的文件地址为"+c[t1]+"\t大小为"+c[t1].length()+"字节"); System.out.println("最小的文件地址为"+c[t2]+"\t大小为"+c[t2].length()+"字节"); for(int i=0;i<c.length;i++) { if(!c[i].isDirectory()||c[i].listFiles()==null||(c[i].listFiles()).length==0) continue;//判断 wjdx(c[i]); } } } |
3 结语
针对Java中的遍历文件夹问题,提出使用for循环遍历的方法,通过实验证明该方法是有效的,本文需要注意的是将文件夹的内容转化为文件数组类型后,数组可能是长度可能是0或是空指针,直接使用可能导致数组越界异常,需判断后使用。