zoukankan      html  css  js  c++  java
  • java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数

    File 递归删除文件夹中所有文件文件夹

    package com.swift.kuozhan;
    
    import java.io.File;
    import java.util.Scanner;
    
    /*键盘录入一个文件夹路径,删除该路径下的所有文件文件夹,包括自己。
    要求:文件夹中包含有子文件夹*/
    
    public class TheLat {
    
        public static void main(String[] args) {
            File dir = inputDir();
            delete(dir);
            
        }
    
        private static void delete(File dir) {
            for(File file:dir.listFiles()) {
                if(file.isDirectory()) {
                    delete(file);
                }else {
                    file.delete();
                }
            }
            dir.delete();
            System.out.println("整个文件夹及其中文件都被删除");
        }
    
        private static File inputDir() {
    
            System.out.println("请录入一个目录");
            Scanner scan = new Scanner(System.in);
            String str = scan.nextLine();
            File file = new File(str);
            if (!file.exists()) {
                throw new RuntimeException("垓目录不存在!");
            }
            if (!file.isDirectory()) {
                throw new RuntimeException("输入的不是一个目录");
            }
            
            return file;
        }
    
    }

    又写了一遍

    package com.swift.kuozhan;
    
    import java.io.File;
    import java.util.Scanner;
    
    /*键盘录入一个文件夹路径,删除该路径下的所有文件夹。
    要求:文件夹中包含有子文件夹*/
    
    public class TheLat {
    
        public static void main(String[] args) {
            File dir = inputDir();
            delete(dir);
            
        }
    
        private static void delete(File dir) {
            for(File file:dir.listFiles()) {
                if(file.isDirectory()) {
                    delete(file);
                }else {
                    boolean success=file.delete();
                    if(success) {
                        System.out.println("文件删除成功.");
                    }else {
                        System.out.println("正在使用,删除失败");
                    }
                }
            }
            boolean success=dir.delete();
            if(success) {
                System.out.println("目录中的文件夹及其中文件都被删除");
            }else {
                System.out.println("文件夹正在使用,删除失败");
            }
        }
    
        private static File inputDir() {
    
            System.out.println("请录入一个目录");
            Scanner scan = new Scanner(System.in);
            String str = scan.nextLine();
            File file = new File(str);
            if (!file.exists()) {
                throw new RuntimeException("垓目录不存在!");
            }
            if (!file.isDirectory()) {
                throw new RuntimeException("输入的不是一个目录");
            }
            
            return file;
        }
    
    }

    找不同

    ====================================================================================================

    package com.swift.test;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    
    /*从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到e:/abc文件夹中,
    并统计java文件的个数.
    提示:如果有相同的名称的文件,如果两个Test01.java,则拷贝到目标文件夹时只能有一个Test01.java,
    另一个Test01.java要修改为另一个名称:该名称可随机生成,只要不重复即可.*/
    
    public class CopyJavaFileCount {
        
        private static int sum=0;
    
        public static void main(String[] args) throws IOException {
    
            Scanner scan=new Scanner(System.in);
            String path = scan.nextLine();
            File src=new File(path);
            File dest=new File("d:/asdf");
            if(!dest.exists()) {
                dest.mkdirs();
            }
            copy(src,dest);
            System.out.println(".java文件的个数是"+sum);
        }
    
        private static void copy(File src, File dest) throws IOException {
            
            File[] files = src.listFiles(new FileFilter() {
                
                @Override
                public boolean accept(File pathname) {
                    
                    if(pathname.isDirectory()) {
                        try {
                            copy(pathname,dest);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if(pathname.getName().toLowerCase().endsWith(".java")) {
                        return true;
                    }
                    return false;
                }
            });
            for(File file:files) {
                String name = file.getName();
                File destFile=new File(dest,name);
                copyFile(file,destFile);
                System.out.println(file);
            }
            sum=sum+files.length;
        }
        
        public static void copyFile(File file1,File file2) throws IOException{
            FileInputStream fis=new FileInputStream(file1);
    //        2.创建字节输出流对象关联文件路径:D盘下的a.png
            FileOutputStream fos=new FileOutputStream(file2);
    //        3.定义一个字节数组,用来存放读取到文件字节数
            byte[] buf=new byte[128];
            int len;
    //        4.使用循环不断从字节输入流读取一个字节数组,每读取一个字节数组就利用输出流写出一个字节数组。
            while((len=fis.read(buf))!=-1) {
                fos.write(buf,0,len);
            }
            System.out.println("已经copy成功");
    //        5.关闭流,释放资源
            fis.close();
            fos.close();
        }
    }
  • 相关阅读:
    JavaScript没有块级作用域
    JavaScript数据类型
    接口
    Linux用户与组别的操作
    解决 macOS 下 SSH 空闲一段时间后自动断开
    Excel 系列一 之 账户类长数字打开不截断与完全显示
    怎样花两年时间去面试一个人
    北京大学硕士学位论文模板
    Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
    刷 LeetCode 时再学习 Python 中引用
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8506160.html
Copyright © 2011-2022 走看看