获取文件的属性信息
概述:主要介绍如何获取文件的属性信息,包括文件的文件名、文件所在的目录、文件是否可读、是否可写、文件大小以及最后修改时间等。 关键技术部析: 通过java.io.File 类可以获取文件的属性信息。
①、 File类的构造方法可为相对或绝对路径,传入参数被当作File对象的抽象路径。File file = new File(“D:/dony/hello.txt”); ②、 File类的getName方法获得文件名,该文件名不包含路径信息。 ③、 File类的getAbsolutePath方法获得文件的绝对路径。 ④、 File类的isAbsolutePath方法判断File对象的抽象路径是否为绝对路径。 ⑤、 File类的toURI方法获取File对象的URI,以 “file:”协议开头。 ⑥、 isDirectory返回它是否指向目录,isFile方法返回它是否指向一个具体文件。 ⑦、 exists方法返回它指向的文件是否存在。
列出指定目录下的文件 当File对象指向一个目录时,可以通过File对象来获取目录下的文件信息。 ①、 File类的list方法返回该目录下所有文件(包含目录)的文件名 ②、 … listFiles方法返回该目录下所有文件的File对象 ③、 FilenameFilter是文件名过滤接口类,所有自定义的文件名过滤器必须实现该接口的accept方法。 实现方法: import java.io.File; import java.io.FilenameFilter;
a、 创建一个目录下的File类对象。File dirFile = new File(“D:/temp”); b、利用户exists方法和isDirectory方法判断指定目录是否存在。 if(!dirFile.exists() || (!dirFile.isDirectory()) {} c、 调查用File 的listFiles方法获取当前文件目录下的文件对象,是一个File数组,如果File是一个目录则递归调用listAllFiles方法。 listAllFiles(dirName) { File dirFile = new File(“dirName”);//如dirName = D:/temp; File[] files = dirFile.listFiles(); for(int i = 0; i < files.length; i ++) { if(file[i].isFile()) { 直接受输出文件 } else if( file[i].isDirectory()) { 为目录;listFileUtill.listAllFiles( files[i].getAbsolutePath()); } }
列出目录中通过文件名过滤器过滤后的文件 实现程序: import java.io.*; public class FileTest {
public static void main(String[] args) throws Exception { System.out.println("请输入文件后缀名,我将列出包含此后缀名的全部文件(不区分大小写):"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //你输入的文件后缀 String suffix = br.readLine(); //String suffix = ".doc"; //新建当前目录文件对象 File f = new File("G:/network"); //列取文件 FilenameFilter filter = new MyFilenameFilter(suffix); File[] fs = f.listFiles(filter);// listFiles 方法指定文件过滤器对象,它只能返回能通过文件过滤器的File对象。 //打印输出 for(int i=0; i<fs.length; i++) { System.out.println(fs[i].getName()); } } } //名称过滤器 class MyFilenameFilter implements FilenameFilter { private String suffix; //用文件后缀名构造对象 MyFilenameFilter(String suf) { //为了不区分大小写,统一转换成小写 this.suffix=suf.toLowerCase(); } public boolean accept(File dir, String name) { //为了不区分大小写,统一转换成小写后进行比较 return name.toLowerCase().endsWith(suffix); } }
|