zoukankan      html  css  js  c++  java
  • 145_IO_File_常用方法_文件夹操作

    一、创建目录

      1、public boolean mkdir() 创建此抽象路径名(必须保证这个父路径存在)指定的目录。当且仅当已创建目录时,返回 true;否则返回 false

      2、public boolean mkdirs() 创建此抽象路径名指定的目录树,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false

    二、创建文件夹演示示例

    package edu.aeon.io;
    
    import java.io.File;
    
    /**
     * [说明]:测试创建目录
     * @author aeon
     * 1、mkdir 创建此抽象路径名(必须保证这个父路径存在)指定的目录。
     * 2、mkdirs 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。
     */
    public class TestMkDir {
    
        public static void main(String[] args) {
            //注意:b:/test/这个父路径必须存在 且要创建的自身目录(此处为test)不存在时、mkdir()这个方法才能创建成功!
            String path="b:/test/test";
            File file1=new File(path);
            boolean flag=file1.mkdir();
            System.out.println("创建"+(flag?"成功!":"失败!"));
            //测试使用mkdirs()创建目录树、当目录层的所有文件夹存在时(包括要创建的自身目录,此处为p)则不继续创建
            path="b:/test/test/test/test/test/test/p";
            File file2=new File(path);
            flag=file2.mkdirs();
            System.out.println("创建"+(flag?"成功!":"失败!"));
        }
    
    }

    测试结果截图:

      

      

    三、遍历所指定文件下所有目录和文件

      比如此处我们遍历b盘test文件夹下有那些目录和文件

      程序示例:  

    package edu.aeon.io;
    
    import java.io.File;
    import java.io.FilenameFilter;
    
    /**
     * [说明]:测试遍历指定目录下的子(孙)目录和子(孙)文件
     * @author aeon
     */
    public class TestMkDir {
        /**
         * [说明]:遍历指定path下的子目录和子文件(不包括孙级目录和文件)
         * @param path
         */
        public static void test1(String path){
            File file=new File(path);
            if(file.isDirectory()){ //如果是个文件夹、则遍历出该文件夹下的所有目录及文件
                String subName[]=file.list();
                for(String temp:subName){
                    System.out.println(temp);
                }
            }
        }
        /**
         * [说明]:遍历指定path下的子目录对象和子文件对象(不包括孙级目录和文件)
         * @param path
         */
        public static void test2(String path){
            File file=new File(path);
            if(file.isDirectory()){
                File [] files=file.listFiles();
                for(File f:files){
                    System.out.println(f.getAbsolutePath());
                }
            }
        }
        /**
         * [说明]:筛选指定目录下的指定文件
         * @param path
         */
        public static void test3(String path){
            File file=new File(path);
            if(file.isDirectory()){
                File[] files=file.listFiles(new FilenameFilter() {
                    
                    @Override
                    public boolean accept(File dir, String name) {
                        //这里的dir就代表file这个对象有些文件夹也可以以.java后命名、此处要过滤掉
                        //如果这个是文件、且文件名以.java结束
                        return new File(dir,name).isFile()&&(name.endsWith(".java")||name.endsWith(".txt"));
                    }
                });
                for(File f:files){
                    System.out.println(f.getName());
                }
            }
        }
        /**
         * 遍历所指定路径下的所有目录及文件(包括所有子孙级目录及文件)
         * @param path
         */
        public static void test4(String path){
            File file=new File(path);
            if(null==file||!file.exists()){ //如果文件不存在
                return;
            }
            if(file.isDirectory()){
                File[] files=file.listFiles();
                for(File f:files){
                    test4(f.getAbsolutePath());
                    System.out.println(f.getAbsolutePath());
                }
            }
        }
        public static void main(String[] args) {
            //遍历b盘test文件夹下有哪些子目录和子文件
            String path="b:/test";
            test1(path);
            System.out.println("==============");
            test2(path);
            System.out.println("===============");
            test3(path);
            System.out.println("================");
            test4(path);
        }
    }

    结果截图: 

     

       

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    Spring框架中的单例bean是线程安全的吗?
    Spring Cloud 解决了哪些问题?
    服务端处理 Watcher 实现 ?
    内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
    vue-router点击同一个页面异常处理
    mybatis代码生成+自定义注解+自定义注释
    lombok使用
    idea格式化设置
    寒假每周总结4
    寒假每日日报27
  • 原文地址:https://www.cnblogs.com/aeon/p/10040898.html
Copyright © 2011-2022 走看看