File类的使用,常用API及如何遍历目录及子目录

常用API

package coreJava;

import java.io.File;
import java.io.IOException;

public class FileDemo {

    public static void main(String[] args) {
        //了解构造函数的情况,查帮助
        File file = new File("G:\\workspace_JAVA\\coreJava\\src\\coreJava\\test");
        //File file2 = new File("G:"+File.separator);//分隔符
        //System.out.println(file.exists());
        if(!file.exists())
            file.mkdir();//file.mkdirs();//多级目录
        else
            file.delete();
        //是否是一个目录
        System.out.println(file.isDirectory());
        //是否是一个文件
        System.out.println(file.isFile());

        //File file2 = new File("G:\\workspace_JAVA\\coreJava\\src\\coreJava\\test.txt");
        File file2 = new File("G:\\workspace_JAVA\\coreJava\\src\\coreJava","test.txt");
        if(!file2.exists())
            try {
                file2.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        else
            file2.delete();
        //常用的File对象的API
        System.out.println(file);//file.toString()的内容
        System.out.println(file.getAbsolutePath());//抽象的路径
        System.out.println(file.getName());//文件的名字
        System.out.println(file2.getName());
        System.out.println(file.getParent());
        System.out.println(file2.getParent());
        System.out.println(file.getParentFile().getAbsolutePath());

    }

}

运行结果

true
false
G:\workspace_JAVA\coreJava\src\coreJava\test
G:\workspace_JAVA\coreJava\src\coreJava\test
test
test.txt
G:\workspace_JAVA\coreJava\src\coreJava
G:\workspace_JAVA\coreJava\src\coreJava
G:\workspace_JAVA\coreJava\src\coreJava

遍历目录

package coreJava;

import java.io.File;
import java.io.IOException;

public class FileUtils {
    /**
     * 列出指定目录下(包括其子目录)的所有文件
     * @param args
     */

    public static void listDirectory(File dir) throws IOException{
        // TODO Auto-generated method stub
        if(!dir.exists()){
            throw new IllegalArgumentException("目录:"+dir+"不存在.");
        }
        if(!dir.isDirectory()){
            throw new IllegalArgumentException(dir+"不是目录");
        }
        /*String[] filenames = dir.list();//返回字符串数组,直接子的名称,不包含子目录下的内容
        for(String string:filenames){
            System.out.println(dir+"\\"+string);
        }*/
        //如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回子目录的抽象
        File[] files = dir.listFiles();//直接返回的是直接子目录(文件的抽象)
        if(files!=null&&files.length>0){
            for (File file : files) {
                if(file.isDirectory()){
                    //递归
                    listDirectory(file);
                }
                else{
                    System.out.println(file);
                }
            }
        }
    }

}

测试方法

package coreJava;

import java.io.File;
import java.io.IOException;

public class test1 {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        FileUtils.listDirectory(new File("G:\\workspace_JAVA"));
    }

}

运行结果

G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\icons\wtp_icon_x32.gif
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\icons\wtp_icon_x48.gif
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\images\01.png
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\images\02a.png
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\images\02b.png
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\images\02b_o.png
G:\workspace_JAVA\.metadata\.plugins\org.eclipse.pde.core\Eclipse Application\org.eclipse.osgi\899\0\.cp\images\02c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值