JAVA August 19, 2018

练习1:文件操作和目录遍历

Words count 2.7k Reading time 2 mins. Read count 0

File类常用的方法

String getName() //得到一个文件的名称(不包括路径)

String getPath() //得到一个文件的路径名

String getAbsolutePath() //得到一个文件的绝对路径名

String getParent() //得到一个文件的上一级路径名

String renameTo(File newname)
//将当前文件名更名为给定文件的完整路径

boolean exists() //判断指定的文件或目录是否存在

boolean mkdir() //创建文件对象指定的目录(单层目录)

boolean mkdirs() //创建文件对象指定的目录(多层目录)

boolean isDirectory() //判断指定的文件是否为目录
boolean isFile() //判断指定的文件是否为文件

boolean createNewFile() //创建文件对象指定的文件

long length() //获取文件的长度,以字节为单位

String[] list() //返回目录中所有文件名字符串

File[] listFiles() //返回目录中所有文件

boolean delete() //删除当前文件

实例:

package com.inspur.io;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * Created by shirukai on 2017/7/26.
 */
public class Test1
{
    public static void main(String[] args){
        //遍历目录C:\Windows\debug所有文件
        String rootPath ="C:\\Windows\\debug";
        //实例化对象Test1
        Test1 test1 = new Test1();
        //调用getFilePaths方法
        List<String> list = test1.getFilePaths(rootPath);
        //输出所有路径
        if (list!=null&&list.size()>0){
            for (int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
            System.out.println("文件总数目"+list.size());
        }
    }
    //创建getFilePaths()方法
    public List<String> getFilePaths(String rootPath){
        List<String> list = null;
        //创建文件对象
        File f2 = new File(rootPath);
        //判断目录是否存在
        if (f2.isDirectory()){
            //获取文件夹下所有文件名称(包括文件目录)
            String[] fileNames=f2.list();
            File f= null;
            if (fileNames.length>0){
                list = new ArrayList<String>();
                for (int i=0;i<fileNames.length;i++){
                    f=new File(rootPath+"\\"+fileNames[i]);
                    if (f.isDirectory()){//如果是文件目录,则继续往下递归
                        List tmpList = getFilePaths(rootPath+"\\"+fileNames[i]);
                        if (tmpList!=null&&tmpList.size()>0){
                            list.addAll(tmpList);
                        }else {
                        list.add(f.getAbsolutePath());
                        }
                    }
                }
            }
        }
        return list;
    }
}
0%