IO_File_常用方法_文件夹操作_命令模式查找JAVA145

来源:http://www.bjsxt.com/
一、S02E145_01IO_File、常用方法、文件夹操作、命令模式查找

package com.test.io.file;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
/**
 * 5.操作目录
 * mkdir()  创建目录,必须确保父目录存在,如果不存在,创建失败;目录存在,则创建失败
 * mkdirs() 创建目录,如果父目录链不存在,则一同创建;目录存在,则创建失败
 * list()子目录或文件名字符串形式
 * listFiles()
 * static listRoots()根路径
 */
public class FolderMethod {
    public static void main(String[] args) {
        FolderMethod01();
        FolderMethod02();
        FolderMethod03();
    }
    /**
     * 创建目录、输出子目录或文件、过滤器FilenameFilter或FileFilter
     */
    public static void FolderMethod01(){
        File src = new File("G:/java/test/p");
        System.out.println(src.mkdir());//true,已存在则false
        src = new File("G:/java/test/p/a/c");
        System.out.println(src.mkdirs());//true,已存在则false

        System.out.println("==========子目录或文件名字符串形式==================");
        src = new File("G:/java/test");
        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
             * 文件且后缀为.java
             */
            public boolean accept(File dir, String name) {
                return new File(dir,name).isFile() && name.endsWith(".java");
            }
        });
        for (File temp : subFiles) {
            System.out.println(temp.getAbsolutePath());
        }
    }
    /**
     * 输出子孙级目录或文件的名称(绝对路径)
     * 所用方法:
     * 1.listFiles()
     * 2.递归
     */
    public static void FolderMethod02(){
        System.out.println("==========输出子孙级目录或文件的名称(绝对路径)================================");
        File src = new File("G:/java/test");
        printName(src);
    }
    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);
            }
        }
    }
    /**
     * 输出根路径
     */
    public static void FolderMethod03() {
        System.out.println("=======输出所有的盘符===============");
        File[] roots = File.listRoots();
        System.out.println(Arrays.toString(roots));
    }
}
/*
返回:
true
true
==========子目录或文件名字符串形式==================
1.txt
200.jpg
a.java
p
Path.java
==============子目录或文件的File对象=========================
G:\java\test\1.txt
G:\java\test\200.jpg
G:\java\test\a.java
G:\java\test\p
G:\java\test\Path.java
==========子文件.java对象==================================
G:\java\test\Path.java
==========输出子孙级目录或文件的名称(绝对路径)================================
G:\java\test
G:\java\test\1.txt
G:\java\test\200.jpg
G:\java\test\a.java
G:\java\test\p
G:\java\test\p\a
G:\java\test\p\a\c
G:\java\test\Path.java
=======输出所有的盘符===============
[C:\, D:\, E:\, F:\, G:\, H:\]
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值