这个类的方法有很多 例如: demo1
File file=new File("."+File.separator+"demo.txt"); //获取名字 String name=file.getName(); System.out.println("name:"+name); //大小(占用的字节量) long lenth=file.length(); System.out.println("大小:"+lenth+"字节"); //是否为文件 boolean isFile=file.isFile(); System.out.println("是文件:"+isFile); //是否为目录 boolean isDir=file.isDirectory(); System.out.println("是目录:"+isDir); //是否问隐藏文件 boolean isHidden=file.isHidden(); System.out.println("是否为隐藏文件"+isHidden); //最后修改时间 long time=file.lastModified(); Date date=new Date(time); System.out.println(date);在当前项目根目录下创建test.txt文件。 demo2
File file=new File("text.txt"); /** * boolean exists() *判断当前File表示的文件或目录是否已经存在了 */ if(!file.exists()){ file.createNewFile(); System.out.println("创建完毕"); }删除当前目录下的test.txt demo3
File file=new File("test.txt"); if(!file.exists()){ file.delete(); System.out.println("删除完毕!"); }else{ System.out.println("该文件不存在"); }在当前目录下创建一个名为demo的目录 demo4
File dir=new File("demo"); if(!dir.exists()){ //创建该目录 dir.mkdirs(); System.out.println("创建完毕"); }else{ System.out.println("该目录已存在"); }在当前目录下创建目录:多级目录 a/b/c/d/e/f demo5
File dir=new File("a"+File.separator+ "b"+File.separator+ "c"+File.separator+ "d"+File.separator+ "e"+File.separator+ "f"); if(!dir.exists()){ /** * dir.mkdir()方法不能创建多级目录,它只可以创建一个目录, * 其他所有父目录必须存在 * * 要创建多级目录就得使用dir.mkdiers()方法 * 在创建当前目录的同时将多有不存在的父目录一并创建出来。 */ dir.mkdirs(); System.out.println("创建完毕!"); }else{ System.out.println("目录已存在"); }删除目录 demo6
File dir=new File("demo"); if(dir.exists()){ /* * 删除目录必有一个要求,该目录必须是一个 * 空目录才可以将其删除 * (比如将demo目录改成a目录(因为a目录下还有目录)) */ dir.delete(); System.out.println("删除完毕!"); }else{ System.out.println("该目录不存在"); }获取当前目录下的所有子项 (是一个list文件集合) demo7
File dir=new File("."); /* * File[] listFiles() * 获取当前目录下的所有子项 */ File[] subs=dir.listFiles(); //遍历 for(File sub:subs){ if(sub.isFile()){ System.out.print("文件:"); }else{ System.out.print("目录:"); } System.out.println(sub.getName()); }获取当前目录下名字以“.”开头的子项(需要用到接口FileFilter的accept过滤器方法(重写)) demo8
File dir=new File("."); /* * 重载的listFiles方法会将所有子项都经过一次过滤器 * 但是该方法只会讲满足过滤器accept方法的子项返回 */ File[] subs=dir.listFiles(new MyFilter()); for(File sub:subs){ String name=sub.getName(); System.out.println(name); } System.out.println("************"); /* * 使用匿名内部类形式创建一个获取当前(目录下的所有文件)的过滤器 */ File[] subss=dir.listFiles(new FileFilter(){ @Override public boolean accept(File file) { return file.isFile(); } }); for(File sub:subss){ System.out.println(sub.getName()); } ....... class MyFilter implements FileFilter{ @Override public boolean accept(File file) { //过滤条件:名字是以“.”开头 String name=file.getName(); System.out.println("正在过滤"+name); return name.startsWith("."); } }目录下面还有多级子目录的删除(使用递归层级删除) demo9
//删除文件 public static void f(File dir){//递归 if(dir.isFile()){//如果是文件直接删除 System.out.println(dir.getName()); dir.delete(); } //如果是目录 File[] dirs=dir.listFiles(); if(dirs.length==0){//当前目录没有子项直接删除 System.out.println(dir.getName()); dir.delete(); } //如果有子项,每个子项递归 for(File file:dirs){ f(file); System.out.println(dir.getName()); dir.delete(); } } public static void main(String[] args) { File dir=new File("a"); f(dir); System.out.println("删除完毕"); }以上就是所有对于File的总结
