• Java的File类


    一、概述

       File是描述一个文件或者文件夹亦称为目录的类。

       File中有两种创建file对象的方法:File(String pathname)和 File(File parent, String child);

      1、通过路径名创建file文件

            //1.表示创建了一个file对象指向D盘的a.txt
            //只是将传入的字符串标记为一个file对象
            //实际上此时并不去计算机中检查这个文件是否存在
            File file = new File("D:a.txt");
            //File file = new File("D:\test.txt");
            //File file = new File("D:\a\b\c");
            
            //2.创建文件
            //当且仅当这个文件不存在时候,才会创建一个新文件
            //这个方法只能用于创建文件
            boolean b = file.createNewFile();

     2、通过父路径和子路径创建file对象

     本质上是拼接父路径和子路径,然后创建file对象。

    public void cutFile(File src, File dest) {
             if(src.isDirectory()) {
                 return;
             }         
             //获取要剪切的文件的名字
             String fileName =src.getName();
             //创建同名文件
             File newFile = new File(dest, fileName);
    }

    二、路径

      1、目录间隔符

        在Windows中,用\间隔目录;在Linux或者是Unix中,是用/间隔目录,Java中为了屏蔽不同操作系统的差异性,所以提供了File.separator表示中间符。

      示例如下

    File file = new File("D:"+ File.separator +"everydayNote" + File.separator + "Day08"
                    + File.separator + "Day08 - 副本");

     2、路径间隔符

       在Windows中,用;间隔不同的路径;在Linux或者Unix中,用:间隔不同的路径,java中为了屏蔽不同操作系统的差异性,所以提供了File.pathSeparator表示间隔符;

     3、绝对路径:

        以盘符或者是/开头的路径。在计算路径的时候和当前路径没有任何关系

     4、相对路径:

        不以盘符或者是/开头的路径。在计算路径的时候需要以当前路径为基准进行计算。“../”表示上一层目录。

    示例:

    File file = new File("D:\a.txt");               
    //1. 获取绝对路径 System.out.println(file.getAbsolutePath()); //2. 获取路径 System.out.println(file.getPath()); System.out.println(file.getParent());

    三、File中常用的方法

     1、创建方法

      创建文件的方法:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false

      创建单级目录的方法:mkdir(): 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。

      创建多级目录:mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。

      重命名文件:renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于对文件进行剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。

     2、判断文件或者目录是否存在

       exists() 文件或文件夹是否存在。

       判断是否为一个文件:isFile() 是否是一个文件,如果不存在,则始终为false。

      判断是否为一个目录:isDirectory() 是否是一个目录,如果不存在,则始终为false。

      判断文件是否是为隐藏文件:isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。

      判断文件路径是否为绝对路径:isAbsolute() 测试此抽象路径名是否为绝对路径名。

    3、获取方法

      获取目录下所有的子文件和字目录:listFiles()

      获取文件名:getName() 获取文件或文件夹的名称,不包含上级路径。

      获取文件路径:getPath()       返回绝对路径,可以是相对路径,但是目录要指定

      获取文件绝对路径:getAbsolutePath() 获取文件的绝对路径,与文件是否存在没关系

      获取文件路径:length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。

      获取文件父路径: getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。

      获取文件最后修改的时间:lastModified() 获取最后一次被修改的时间。

    4、删除方法

      删除方法:delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。

      终止时删除方法:deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除

    四、使用案例

      删除一个文件下所有的文件:

      思路:如果是文件则直接删除,如果是文件夹,则遍历该文件夹,然后删除其中的文件。

    public static boolean deleteDirectory(String filePath) {
            File file = new File(filePath);
                    
            if(file.isFile()) {
                file.delete();
            } else if(file.isDirectory()) {
                File[] fs = file.listFiles();
                for(File f : fs) {
                    deleteDirectory(f);
                }            
            }
            
            file.delete();
            
            return true;
        }
  • 相关阅读:
    python 垃圾回收装置
    文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance/GoodSync/Allway Sync/Compare Advance)
    WCF的ABC
    NPOI导出多表头Execl(通过html表格遍历表头)
    分布式应用处理方式
    再探ASP.NET 5(转载)
    应聘.net开发工程师常见的面试题(五)
    应聘.net开发工程师常见的面试题(四)
    应聘.net开发工程师常见的面试题(二)(转载)
    应聘.net开发工程师常见的面试题(一)(转载)
  • 原文地址:https://www.cnblogs.com/chhyan-dream/p/10770360.html
Copyright © 2020-2023  润新知