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. 代码解释

有几个点需要注意:

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

猜你喜欢

转载自blog.csdn.net/woshisangsang/article/details/107707974