妖碧落

导航

File 类

File 表示一个 路径。 可以是文件 也可以是文件夹

File 类  在IO包下

三个构造方法 都是为了传入 路径

  * File(String pathname):根据一个路径得到File对象
  * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
  * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

import java.io.File;

public class demon2_file {

    public static void main(String[] args) {
        //demo1();
        String parent = "F:\\Desktop\\java 笔记";
        String child = "day19笔记.md";
        File file3 = new File(parent, child);
        System.out.println(file3.exists() );
    }
    public static void demo1() {
        File file = new File("F:\\Desktop\\java 笔记\\day19笔记.md");   //   反斜线  需要转义一下
        System.out.println(file.exists());
        File file2 = new File("xxx.txt");
        System.out.println(file2.exists());
    }

}

 

 

常用方法: 

  创建:

    * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了


    * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
    * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来     创建多级文件夹

 

  重命名:  renameto     可改名,可剪切

    *public boolean renameTo(File dest):把文件重命名为指定的文件路径 ######可改名,可剪切####


  删除:  delete

    * public boolean delete():删除文件或者文件夹

  

  判断功能:    

     isDirectory():判断是否是目录
     isFile():判断是否是文件
     exists():判断是否存在
     canRead():判断是否可读
     canWrite():判断是否可写
     isHidden():判断是否隐藏

   设置:

     setReadable(True)   :设置是否可读          windows默认所有文件都是可读的,Linux系统有区分

     setWirtable(False)  : 设置是否可写

    

 

获取功能:

    length()   :   获取字节数 。     将length() = 0 ,即清空文件了

    listFiles()  :        获取路径下所有的文件和文件夹对象   获取指定目录下的所有文件或者文件夹的File数组

    list():                  获取指定目录下的所有文件或者文件夹的名称数组

    getAbsolutePath():获取绝对路径

    getPath():获取路径

    getName():获取名称

    lastModified():获取最后一次的修改时间,毫秒值

    list():获取指定目录下的所有文件或者文件夹的名称数组

import java.io.File;
import java.util.Scanner;

public class test1 {
    /*
     * 从键盘录入一个文件夹, 统计该文件夹大小
     */
    public static void main(String[] args) {
        File dir = getFile();
        System.out.println(getFileLength(dir));
    }

    private static long getFileLength(File dir) {
        long len = 0;
        File[] farr = dir.listFiles();   //   获取所有文件和文件夹
        for (File subFile : farr) {
            if (subFile.isFile()) {
                len = len + subFile.length();
            } else {
                len = len + getFileLength(subFile);    //递归
            }
        }
        return len;
    }

    public static File getFile() {
        Scanner s1 = new Scanner(System.in);
        System.out.println("请输入一个文件夹路径");
        
        while(true){
            String path = s1.nextLine();
            File f1 = new File(path);
            if (f1.exists()) {
                if (f1.isFile()) {
                    System.out.println("你输入的是一个文件路径,请重新输入一个文件夹路径");
                }else{
                    return f1;
                }
            }else {
                System.out.println("你输入的路径不存在,请重新输入一个文件夹路径");
            }
        }
    }

}

 

import java.io.File;

public class test2 {

    public static void main(String[] args) {
        File dir = test1.getFile();
        deleteFile(dir);
    }

    private static void deleteFile(File dir) {    //  删除一个文件夹
        File[] subFiles = dir.listFiles();
        for (File subFile : subFiles) {
            if (subFile.isFile()) {
                subFile.delete();
            } else {
                deleteFile(subFile);      //  递归
            }
        }
        dir.delete();
    }

}

posted on 2019-08-06 22:19  妖碧落  阅读(90)  评论(0编辑  收藏  举报