Files
检查文件是否存在
1 | Path path = Paths.get("helloword/data.txt"); |
创建一级目录
1 | Path path = Paths.get("helloword/d1"); |
- 如果目录已存在,会抛异常 FileAlreadyExistsException
- 不能一次创建多级目录,否则会抛异常 NoSuchFileException
创建多级目录用
1 | Path path = Paths.get("helloword/d1/d2"); // 即使d1目录不能存在也会创建出来 |
拷贝文件
1 | Path source = Paths.get("helloword/data.txt"); |
- 如果文件已存在,会抛异常 FileAlreadyExistsException
如果希望用 source 覆盖掉 target,需要用 StandardCopyOption 来控制
1 | Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); |
要拷贝文件的话,就用这个这个 copy或是 transferTo,这两个方法都是效率比较高的
移动文件
1 | Path source = Paths.get("helloword/data.txt"); |
- StandardCopyOption.ATOMIC_MOVE 保证文件移动的原子性
删除文件
1 | Path target = Paths.get("helloword/target.txt"); |
- 如果文件不存在,会抛异常 NoSuchFileException
删除目录(只能删除一个空目录)
1 | Path target = Paths.get("helloword/d1"); |
- 如果目录还有内容,会抛异常 DirectoryNotEmptyException
遍历目录文件
1 | public static void main(String[] args) throws IOException { |
统计 jar 的数目
1 | Path path = Paths.get("C:\\Program Files\\Java\\jdk1.8.0_91"); |
删除多级目录
1 | Path path = Paths.get("d:\\a"); |
⚠️ 删除很危险
删除是危险操作,确保要递归删除的文件夹没有重要内容
拷贝多级目录
1 | public static void main(String[] args) throws IOException { |
运行时输出:
拷贝出了bbbb