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平台的路径风格符,此时第一个反斜线是转义字符。