JavaのFile类基础操作之获取文件信息

  除了前两章介绍的对文件基础操作的方法之外,还可以使用File类中提供的其他方法来获取文件本身的一些信息。

  1.文件是否可读

  public boolean canRead();

  2.文件是否可写

  public boolean canWrite();

  3.文件是否可执行

  public boolean canExecute();

  4.获取文件字节数

  public long length();

  该方法返回值的类型为long,单位为字节。(long型一般可表示,时间,日期,内存大小,ID号

  5.获取文件名

  public String getName();

  6.获取文件完整路径

  public String getPath();   (也可以使用toString()方法)

  7.获取最后一次修改日期时间

  public long lastModified();

  该文件最后一次修改日期的毫秒数被返回,然后可以使用Date类将其转化为日期,由于Date类出去的结果不容易理解,可以进一步使用SimpleDateFormat类进行日期格式化,代码如下:

    File file = new File("D:"+ File.separator +"joshiniti.txt");
    Date lastModifiedDate = new Date(file.lastModified());    //将毫秒数转化为Date的一个实例化对象。
    SimpleDateFormat sdFormat = new  SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");    //实例化一个SimpleDateFormat对象
    String lastModifiedDateStr = sdFormat.format(lastModifiedDate);        //日期格式化
    System.out.println(lastModifiedDateStr);

  8.判断是否是隐藏文件

  public boolean isHidden();

  9.判断是否是目录

  public boolean isDirectory();

  10.判断是否是文件

  public boolean isFile();

  11.获取一个目录下的所有文件(包括子目录和子文件

  public File[] listFiles();

 

实例1:给定一个目录(以D盘为例),列出该目录下的所有子目录。

File file = new File("D:"+ File.separator);
if( file.isDirectory() ){
    File[] subFiles =  file.listFiles();
    if( subFiles != null ){
        for(File subFile : subFiles){
            if( subFile.isDirectory()){
                System.out.println(subFile.getName());
            }
        }
    }
}        

如果说是要列出所有子文件的话,只需要将 subFile.isDirectory() 变为subFile.isFile()即可。

 

实例2:给定一个目录,将该目录下的所有文件的信息全部列出来,包括子目录中的文件信息。(在这种情况下,最好的处理方法就是使用递归)

public static void accessFile(File file){
  if( file.isDirectory() ){		//是目录的话
    File[] subFiles =  file.listFiles();	//获取所有子文件
    if( subFiles != null ){
      for(File subFile : subFiles){
        accessFile(subFile);	//递归处理
      }
    }
  }
  System.out.println(file);	//输出文件路径
}

  注意,如果将代码中的输出语句换成删除语句 file.delete() 的话,那么此代码的功能是完成一个文件夹的删除操作。尤其是当指定的是一个磁盘路径时,该磁盘下的所有文件将被删除。(谨慎使用!!)

 

  

 

posted @ 2019-03-08 09:51  joshiniti  阅读(2332)  评论(0编辑  收藏  举报