File常用方法 (包含:递归扫描文件夹,递归删除文件夹)

File类的常用操作

File(String pathname):传递一个字符串

File(File parent, String child)传递一个File对象,和一个字符串。第一个parent表示父级目录,child表示文件。

代码示例:

File parent = new File("test");
String f = "test.txt";
File file = new File(parent,f);

exists()检验文件/文件夹是否存在,存在返回true,反之false

代码示例:

 boolean isExists = file.exists();

mkdirs():创建多级目录,不会创建文件

代码示例:

//若是目录不存在
if(!parent.exists()){
    parent.mkdirs();
}

createNewFile()创建文件

提示:若目录不存在是无法创建文件的

代码示例:

//若不存在就创建一个文件
        if(!file.exists()){
            try {
                file.createNewFile();//创建文件
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

getAbsolutePath():获取文件的绝对路径

代码示例:

String absolutePath = file.getAbsolutePath();
System.out.println("absolutePath:"+absolutePath);

getPath();获取文件的相对路径

代码示例:

String path = file.getPath();
System.out.println("path:"+path);

canRead():检测文件是否可读

代码示例:

boolean canRead = file.canRead();
System.out.println("canRead"+canRead);

canWrite():检测文件是否可写

代码示例:

        boolean canWrite = file.canWrite();
        System.out.println("canWrite"+canWrite);

isHidden():检测文件是否是隐藏文件

代码示例:

        boolean hidden = file.isHidden();
        System.out.println("hidden"+hidden);

getName():获取文件名

提示:(有扩展名)

代码示例:

        String name = file.getName();
        System.out.println("name:"+name);

length():获取文件的大小

提示:(单位是byte)

代码示例:

        long length = file.length();
        System.out.println(length);

listFiles():获取文件夹下的所有文件

代码示例:

        File[] files = parent.listFiles();
        if (files == null) Arrays.stream(files).forEach(System.out::println);
File类重要的两个操作:

1.递归删除文件夹

    /**
     * 递归删除文件夹
     * @param folder 文件夹目录
     */
    public static void deleteFolder(File folder){
        if (folder.isDirectory()){
            File[] files = folder.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        deleteFolder(file);
                    }
                }
            }
        }
        folder.delete();
    }

2.递归扫描文件夹

    /**
     * 递归扫描文件夹
     * @param folder 文件夹目录
     */
    public static void scanFolder(File folder){
        if (folder.isDirectory()) {
            for (File file : folder.listFiles()) {
                scanFolder(file);
            }
        }
        System.out.println(folder);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值