关于Java文件与目录的常用操作

文件的常用操作

package com.robot.io;

import java.io.*;
import java.util.Date;

/**
 * 文件操作。
 *
 * @author 张宝旭
 */
public class FileTest {
    public static void main(String[] args) throws IOException {
        // 创建文件
        File file = new File("d:\\myTemp\\temp.txt");
//        File file2 = new File("D:\\myTemp", "file2.txt");
        if (!file.exists()) {
            if (file.createNewFile()) {
                System.out.println("创建成功!");
            }
        }

        // 第一种:删除文件
//        if (file.delete()) {
//            System.out.println("删除成功!");
//        }
        // 第二种:删除文件(JVM删除)
//        file.deleteOnExit();

        // 获取信息
        System.out.println("文件长度: " + file.length());
        System.out.println("文件名称: " + file.getName());
        System.out.println("文件绝对路径: " + file.getAbsolutePath());
        System.out.println("文件相对路径: " + file.getPath());
        System.out.println("文件父目录: " + file.getParent());
        System.out.println("文件最后一次修改时间: " + new Date(file.lastModified()));

        // 判断
        System.out.println("是否存在: " +file.exists());
        System.out.println("是否只读: " +file.canRead());
        System.out.println("是否隐藏: " +file.isHidden());
        System.out.println("是否是文件: " +file.isFile());

        // 修改名字
        if (file.renameTo(new File(file.getParent() + "\\yourName.txt"))) {
            System.out.println("修改成功!");
        }
    }
}

目录的常用操作

package com.robot.io;

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

/**
 * 目录操作。
 *
 * @author 张宝旭
 */
public class DirectoryTest {
    public static void main(String[] args) throws IOException {
        // 创建文件夹
        File dir = new File("D:\\myDir\\aaa");
        if (!dir.exists()) {
//            dir.mkdir(); // 创建单级目录
            // 创建多级目录
            if (dir.mkdirs()) {
                System.out.println("创建成功");
            } else {
                System.out.println("创建失败");
            }
        } else {
            System.out.println("目录存在");
        }

        // 获取信息
        System.out.println("获取路径: " + dir.getPath());
        System.out.println("获取绝对路径: " + dir.getAbsolutePath());
        System.out.println("获取名称: " + dir.getName());
        System.out.println("获取规范名称: " + dir.getCanonicalPath());

        // 判断
        System.out.println("是否存在: " + dir.exists());
        System.out.println("是否隐藏: " + dir.isHidden());
        System.out.println("是否是目录: " + dir.isDirectory());

        // 重命名,并复制到一个新位置
        if (dir.renameTo(new File("D:\\myDir\\ccc"))) {
            System.out.println("重命名成功");
        } else {
            System.out.println("重命名失败");
        }

        // 删除空目录
        File temp = new File("d:\\myDir\\temp");
        if (temp.delete()) {
            System.out.println("删除成功");
        } else {
            System.out.println("删除失败");
        }

        System.out.println("--------获取子目录和文件---------");
        // 获取子目录和文件
        File dir2 = new File("D:\\myDir");
//        String[] list = dir2.list();
//        for (String s : list) {
//            System.out.println(s);
//        }
        File[] files = dir2.listFiles();
        for (File file : files) {
            System.out.println(file);
        }

        // 获取目录下的.txt
        System.out.println("--------获取.txt---------");
        String[] myFiles = dir2.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                if (name.endsWith(".txt")) {
                    return true;
                }
                return false;
            }
        });
        for (String myFile : myFiles) {
            System.out.println(myFile);
        }
        //获取根目录
        System.out.println("--------获取根目录-------");
        File[] roots = File.listRoots();
        for (File root : roots) {
            System.out.println(root);
        }
    }
}

递归删除和显示

package com.robot.io;

import java.io.File;

/**
 * 递归显示和删除文件。
 *
 * @author 张宝旭
 */
public class ShowFile {

    public static void main(String[] args) {
        ShowFile showFile = new ShowFile();
        showFile.show(new File("d:myDir"), 0);
        showFile.deleteList(new File("d:myDir"));
    }

    /**
     * 递归显示目录下的所有文件
     * @param dir 目录
     * @param level 递归深度
     */
    public void show(File dir, int level) {
        System.out.println(getSpace(level) + dir.getAbsolutePath());
        level++;
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    show(file, level);
                } else {
                    System.out.println(getSpace(level) + file.getAbsolutePath());
                }
            }
        }
    }
    public String getSpace(int level) {
        StringBuilder stringBuilder = new StringBuilder();
        for(int i = 0; i < level; i++) {
            stringBuilder.append("----");
        }
        return stringBuilder.toString();
    }

    /**
     * 递归删除目录下的所有文件
     * @param dir 目录
     */
    public void deleteList(File dir) {
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    deleteList(file);
                } else {
                    System.out.println(file.getAbsolutePath() + "----删除结果: " + file.delete());
                }
            }
        }
        System.out.println(dir.getAbsolutePath() + "----删除结果: " + dir.delete());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值