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

来源:互联网 发布:java 二进制中文乱码 编辑:程序博客网 时间:2024/05/18 18:17

来源: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));    }}/*返回:truetrue==========子目录或文件名字符串形式==================1.txt200.jpga.javapPath.java==============子目录或文件的File对象=========================G:\java\test\1.txtG:\java\test\200.jpgG:\java\test\a.javaG:\java\test\pG:\java\test\Path.java==========子文件.java对象==================================G:\java\test\Path.java==========输出子孙级目录或文件的名称(绝对路径)================================G:\java\testG:\java\test\1.txtG:\java\test\200.jpgG:\java\test\a.javaG:\java\test\pG:\java\test\p\aG:\java\test\p\a\cG:\java\test\Path.java=======输出所有的盘符===============[C:\, D:\, E:\, F:\, G:\, H:\]*/
0 0