145_IO_File_常用方法_文件夹操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21122243/article/details/77102798

常用方法_文件夹操作

  • Test04_DirMethod.java
package _01.io.file;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

/**
 * 5.操作目录
 * mkdir() 创建目录->必须确保父目录存在,如果不存在,创建失败
 * mkdirs() 创建目录,如果父目录链不存在一同创建
 * list() 文件|目录 名字符串形式
 * listFiles() 文件|目录 File对象形式
 * static listRoots() 根路径
 */

public class Test04_DirMethod {
    public static void main(String[] args) {
        test1();
    }
    /**
     * mkdir() 创建目录->必须确保父目录存在,如果不存在,创建失败
     * mkdirs() 创建目录,如果父目录链不存在一同创建
     */
    public static void test1(){
        String path ="E:/IOTest/text/a/temp";
        File src =new File(path);
        //src.mkdir();
        src.mkdirs();
    }
    /**
     * list() 文件|目录 名字符串形式
     * listFiles() 文件|目录 File对象形式
     */
    public static void test2(){
        String path ="E:/IOTest/a";
        File src =new File(path); //文件夹
        if(src.isDirectory()){ //存在并且为目录
            System.out.println("======子目录|文件名===");
            String[] subNames =src.list();
            for(String temp:subNames){
                System.out.println(temp);
            }
            System.out.println("=====子目录|文件File对象====");
            File[] subFiles =src.listFiles();
            for(File temp:subFiles){
                System.out.println(temp.getAbsolutePath());
            }
            System.out.println("=====子文件.java对象====");
            //命令设计模式
            subFiles =src.listFiles(new FilenameFilter(){
                @Override
                /**
                 * dir代表src
                 */
                public boolean accept(File dir, String name) {
                    //System.out.println(dir.getAbsolutePath());
                    return  new File(dir,name).isFile()&&name.endsWith(".java");
                }
            });
            for(File temp:subFiles){
                System.out.println(temp.getAbsolutePath());
            }
        }
    }

   /**
     * 输出子孙级目录|文件的名称(绝对路径)
     * 1.listFiles()
     * 2.递归
     * static listRoots() 根路径
     */
     public static void test03(){
        String path ="E:/IOTest/";
        File parent =new File(path);
        printName(parent);

        File[] roots =File.listRoots();
        System.out.println(Arrays.toString(roots));
        for(File temp:roots){
            printName(temp);
        }
    }
    public static void printName(File src){
        if(null==src || !src.exists()){
            return ;
        }
        System.out.println(src.getAbsolutePath());
        if(src.isDirectory()){ //文件夹
            for(File sub:src.listFiles()){
                printName(sub);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_21122243/article/details/77102798