最近遇到了删除文件夹下的文件的需求,不说废话,直接贴
这段代码中使用了try-with-resources语句来自动管理资源。在Java中,try-with-resources语句用于自动关闭实现了AutoCloseable接口的对象,如本例中的Stream<Path>。
当try块执行完毕或者抛出异常时,Stream<Path>会被自动关闭,无需显式调用关闭方法。这样做的好处是可以避免因为忘记关闭资源而导致的资源泄露问题,同时简化了代码,提高了可读性和可维护性。
因此,在这段代码中,Stream<Path>的资源管理是由Java的try-with-resources语句自动处理的,不需要手动调用任何关闭方法。
这个是我只是想删除文件夹下的文件,不想删除文件夹
private void deleteDirectoryContent(String directoryPath) throws IOException {
Path dir = Paths.get(directoryPath);
try (Stream<Path> paths = Files.walk(dir)) {
paths.sorted((first, second) -> second.compareTo(first))
.filter(Files::isRegularFile) // 添加这一行来过滤出文件
.map(Path::toFile)
.forEach(File::delete);
}
}
连带文件夹删除的就去掉这一句
.filter(Files::isRegularFile) // 添加这一行来过滤出文件