文件以及文件夹的操作

递归显示/删除文件

public class Demo1 {
    public static void main(String[] args) {
        //listDir(new File("d:\\aaa"),0);
        deleteList(new File("c:\\"));
    }
    public static void listDir(File dir,int level) {
        System.out.println(getSeprator(level)+dir.getAbsolutePath());
        level++;
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    listDir(file,level);
                }else{
                    System.out.println(getSeprator(level)+file.getAbsolutePath());
                }
            }
        }
    }
    public static String getSeprator(int level){
        StringBuilder sb=new StringBuilder("|");
        for(int i=0;i<level;i++){
             sb.append("_____");
        }
        return sb.toString();
    }

    //递归删除
    public static void deleteList(File dir){
        File[] files = dir.listFiles();
        if(files!=null&&files.length>0){
            for (File file : files) {
                if(file.isDirectory()){
                    deleteList(file);
                }else{
                    System.out.println(file.getAbsolutePath()+"---删除结果:"+file.delete());
                }
            }
        }
        //目录删除
        System.out.println(dir.getAbsolutePath()+"---删除结果:"+dir.delete());
    }
}

文件的操作

public class FileOperate {
    public static void main(String[] args) throws Exception {
        //(1)创建文件
        File file=new File("d:\\aaa.txt");
        if(!file.exists()){
            boolean b=file.createNewFile();
            System.out.println("创建结果:"+b);
        }else{
            System.out.println("文件已存在");
        }
        //(2)删除文件
        //2.1直接删除
//        boolean b2=file.delete();
//        System.out.println("删除结果:"+b2);
        //2.2JVM删除
//        Thread.sleep(5000);
//        file.deleteOnExit();
        //(3)获取信息
        System.out.println("文件长度:"+file.length());
        System.out.println("文件名称:"+file.getName());
        System.out.println("文件绝对路径:"+file.getAbsolutePath());
        System.out.println("规范路径:"+file.getCanonicalPath());
        System.out.println("文件路径:"+file.getPath());
        System.out.println("文件父目录:"+file.getParent());
        System.out.println("文件最后一次修改:"+new Date(file.lastModified()).toLocaleString());

        //(4)判断
        System.out.println("是否存在:"+file.exists());
        System.out.println("是否只读:"+file.canWrite());
        System.out.println("是否隐藏:"+file.isHidden());
        System.out.println("是不是文件:"+file.isFile());
        System.out.println("是不是绝对路径:"+file.isAbsolute());

        //(5)修改名称: (具有剪切的功能)
        file.renameTo(new File("zhangsan.txt"));


    }
}

文件夹的操作

public class DirectoryOperate {
    public static void main(String[] args) throws Exception{
        //1创建文件夹
        File dir=new File("d:\\aaa\\bbb\\ccc");
        if(!dir.exists()){
//            dir.mkdir();//创建单级目录
            boolean b=dir.mkdirs();//创建多级目录
            System.out.println("创建结果:"+b);
        }else{
            System.out.println("目录已经存在");
        }
        //2删除
        //2.1直接删除:只删除最里层空目录
//        boolean b2=dir.delete();
//        System.out.println("删除结果:"+b2);
        //2.2jvm删除
//        dir.deleteOnExit();
        //3获取信息
        System.out.println("获取路径:"+dir.getPath());
        System.out.println("获取绝对路径:"+dir.getAbsolutePath());
        System.out.println("获取名称:"+dir.getName());
        System.out.println("规范名称:"+dir.getCanonicalPath());

        //4判断
        System.out.println("是否存在:"+dir.exists());
        System.out.println("是否隐藏:"+dir.isHidden());
        System.out.println("是不是文件夹:"+dir.isDirectory());

        //5重命名
        boolean b3=dir.renameTo(new File("d:\\aaa\\bbb\\hello"));

        //6获取目录的子目录和文件
        File dir2=new File("d:\\mywork");
        System.out.println("------------d:\\mywork--------------");
//        String[] list = dir2.list();
//        for (String s : list) {
//            System.out.println(s);
//        }
//        File[] files = dir2.listFiles();
//        for (File file : files) {
//            System.out.println(file.toString());
//        }
        //获取目录下的.pptx
        System.out.println("-------FilenameFilter-------");
//        String[] files=dir2.list(new FilenameFilter() {
//            @Override
//            public boolean accept(File dir, String name) {
//                if(name.endsWith(".pptx")){
//                    return true;
//                }
//                return false;
//            }
//        });
        File[] files=dir2.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if(pathname.getName().endsWith(".pptx")){
                    return true;
                }
                return false;
            }
        });
        for (File file : files) {
            System.out.println(file);
        }
        //获取根目录
        System.out.println("--------获取根目录-------");
        File[] roots = File.listRoots();
        for (File root : roots) {
            System.out.println(root);
        }


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值