File类的使用

判断是文件还是目录(文件夹)

/**
 * @Author JimmySong
 * @Date 2023/11/3 10:08
 * @Version 1.0
 */
public class File01_word {

    public static void main(String[] args) {


        /*- `public boolean exists()` :此File表示的文件或目录是否实际存在。
        - `public boolean isDirectory()` :此File表示的是否为目录。
        - `public boolean isFile()` :此File表示的是否为文件。*/


     //对一个文件的文件路径进行判断是不是文件或者文件夹
        File file = new File("D:\\输电审核工具\\测试文档\\读取测试\\一层.docx");
        System.out.println(file.isFile());//判断是否是文件
        System.out.println(file.isDirectory());//判断是否是文件夹
        System.out.println(file.exists());//判断路径是否存在
        System.out.println("==============================");
        //对一个文件夹的文件路径进行判断是不是文件或者文件夹
        File file2 = new File("D:\\输电审核工具\\测试文档\\读取测试");
        System.out.println(file2.isFile());//判断是否是文件
        System.out.println(file2.isDirectory());//判断是否是文件夹
        System.out.println(file2.exists());//判断路径是否存在
        System.out.println("==============================");
        //对一个不存在的的文件路径进行判断是不是文件或者文件夹
        File file3 = new File("D:\\输电审核工具\\测试文档\\读取测试\\一=shi层.docx");
        System.out.println(file3.isFile());//判断是否是文件
        System.out.println(file3.isDirectory());//判断是否是文件夹
        System.out.println(file3.exists());//判断路径是否存在


    }



}

路径,名称,长度,最后造作时间

public class File02_word {

    public static void main(String[] args) {


/*###获取功能的方法

        - `public String getAbsolutePath () ` :返回此File的绝对路径名字符串。

        - `public String getPath () ` :将此File转换为路径名字符串。

        - `public String getName ()`  :返回由此File表示的文件或目录的名称--括号中写的啥,返回啥

        - `public long length ()`  :返回由此File表示的文件的长度。 只能返回文件的大小
        想要mb或者g,通过除以1024
        无法获取文件夹的大小,需要把文件夹中的文件累加一起

        - */


        File file = new File("D:\\输电审核工具\\测试文档\\读取测试\\一层.docx");
        long length = file.length();
        System.out.println(length);

        System.out.println("================================================================");

        System.out.println(file.getName());

        System.out.println("================================================================");

        System.out.println(file.getAbsoluteFile());

        System.out.println("================================================================");

        System.out.println(file.getPath());

        System.out.println("================================================================");

        //最后被操作的时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        Long time = file.lastModified();
        System.out.println(simpleDateFormat.format(time));

    }

}

创建/删除---文件,目录,

public class File03_word {

    public static void main(String[] args) throws IOException {

/*### 创建删除功能的方法

        - `public boolean createNewFile()` :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
        - `public boolean delete()` :删除由此File表示的文件或目录。
        - `public boolean mkdir()` :创建由此File表示的目录。
        - `public boolean mkdirs()` :创建由此File表示的目录,包括任何必需但不存在的父目录。*/

        //creatNewFIle 创建一个新的文件夹
        //成功为true,失败为flase
        //如果不包含后缀名,则创建的文件没有后缀名

        File file = new File("D:\\输电审核工具\\测试文档\\读取测试\\11一层.docx");
        boolean b = file.createNewFile();
        System.out.println(b);


        //创建目录----创建文件夹  make directory--- 单级文件夹

        File file1 = new File("D:\\输电审核工具\\测试文档\\读取测试\\11一层");
        boolean b1 = file1.mkdir();
        System.out.println(b1);

        //创建多级文件夹 ---单级多级都可以
        File file2 = new File("D:\\输电审核工具\\测试文档\\读取测试\\11一层");
        boolean b2 = file1.mkdirs();
        System.out.println(b2);

    }
}

获取目录下全部文件  & 过滤条件

public class File04_word {

    public static void main(String[] args) throws IOException {

/*    - `public String[] list()` :返回一个String数组,表示该File目录中的所有子文件或目录。
D:\输电审核工具\测试文档\读取测试\11一层.docx
      - `public File[] listFiles()` :返回一个File数组,表示该File目录中的所有的子文件或目录+路径。
11一层.docx
      - list(FileNameFilter filter) 利用文件名来过滤当前该路径下的所有内容


 */

        //获取当前路径的全部内容
        File file3 = new File("D:\\输电审核工具\\测试文档\\读取测试");
        //获取所有内容
        File[] files = file3.listFiles();
        for (File file4 : files) {
            System.out.println(file4);
        }
        System.out.println("============================================");
        //
        String[] list = file3.list();
        for (String string : list) {
            System.out.println(string);
        }

        System.out.println("============================================");
        //文件名过滤器
        File file = new File("D:\\输电审核工具\\测试文档\\读取测试");
        String[] list1 = file.list(new FilenameFilter() {
            @Override
            //参数一是父级路径--dir
            //参数二是子级路径--name
            public boolean accept(File dir, String name) {
                //通过过滤取出所有docx文件

                File file1 = new File(dir,name);
                return file1.isFile() && name.endsWith("docx");
                // return false;//不在数据放数据
               // return true; //放在数组中

            }

        });

       System.out.println(Arrays.toString(list1));

       System.out.println("============================================");

        File file2 = new File("D:\\输电审核工具\\测试文档\\读取测试");
        File [] files1 = file2.listFiles();
        for (File file1 : files1) {
            if (file1.isFile() && file1.getName().endsWith("docx")) {
                System.out.println(file1);
            }
        }

    }
}

 遍历指定路径下的全部文件

public class File05_word {

    public static void main(String[] args) throws IOException {

        File src = new File("D:\\输电审核工具\\测试文档\\包21");
        findDocx(src);
    }
        public static void findDocx ( File src){
            // 1,进入文件夹
            File[] files = src.listFiles();
            //防止空指针方体!=null
            if (files!=null){
            //2,遍历数组
            for (File file : files) {

                if ( file.getName().endsWith("rar")||file.getName().endsWith("xlsx")){
                    System.out.println(file);

                }else {
                    findDocx(file);//递归传参一定是子文件参数

                }
            }

        }

    }
}

你可能感兴趣的:(c#,开发语言)