Java 对目录进行增删改查操作

1. 相关类库

Java中为目录和文件建立的相关类库都是File,相当于统一建模了,不过说实话确实差不多,把目录视为一种特殊文件就是了。

常见的目录操作,无非就是新增、删除、重命名、查询子目录,我们编写一个工具类。

2. 目录操作工具类

代码如下:

/**
 1. 目录操作工具类
 */
public class DirectoryUtils {
    /**
     * 创建目录
     */
    public static boolean createDirectory(String path) {
        File dir = new File(path);
        return dir.mkdir();
    }

    /**
     * 删除目录
     */
    public static boolean deleteDirectory(String path) {
        File dir = new File(path);
        return dir.delete();
    }

    /**
     * 重命名目录
     */
    public static boolean renameDirectory(String oldPath, String newPath) {
        File dir = new File(oldPath);
        return dir.renameTo(new File(newPath));
    }

    /**
     * 列出子目录信息
     */
    public static File[] getChildrenDirectories(String path) {
        File dir = new File(path);
        return dir.listFiles();
    }

    /**
     * 测试
     */
    public static void main(String[] args) throws IOException, InterruptedException {
        // 新增目录测试
        DirectoryUtils.createDirectory("D:/dir");
        DirectoryUtils.createDirectory("D:/dir/dir1");
        DirectoryUtils.createDirectory("D:/dir/dir2");
        DirectoryUtils.createDirectory("D:/dir/dir3");
        // 重命名测试
        DirectoryUtils.renameDirectory("D:/dir/dir1", "D:/dir/dir_1");
        DirectoryUtils.renameDirectory("D:/dir/dir2", "D:/dir/dir_2");
        // 删除测试
        DirectoryUtils.deleteDirectory("D:/dir/dir3");
        // 列出子目录
        File[] files = DirectoryUtils.getChildrenDirectories("D:/dir");
        for (File file : files) {
            System.out.println(file.getName());
        }
    }
}
3. 代码解释
有几个点需要注意:

如果父目录不存在,直接创建子目录会返回false,例如如果不存在D:/dir,直接创建D:/dir/dir1会失败。
可以使用/作为平台无关的路径分隔符,直接Windows等平台
也可以使用\\作为Windows平台的路径风格符,此时第一个反斜线是转义字符。
上一篇:代码写Button遇到问题


下一篇:商密算法SM2、SM3、SM4的用途和原理