Java 删除目录或文件方法:完整代码示例
Java 删除目录或文件方法:完整代码示例
本文将介绍如何使用 Java 语言编写一个方法,可以删除指定路径的目录或文件。
要求:
- 传入字符串路径参数,如果路径表示的是文件,则直接删除;如果路径表示的是目录,则要求删除目录中所有的内容。
实现思路:
删除目录比复制目录简单,可以先完成此题目,再尝试复制目录。建议使用 Files 类的 walkFileTree 方法遍历目录树。
- 当访问文件时,删除文件。
- 当访问目录结束时(
postVisitDirectory),删除目录。因为此时,目录中的文件已经被删除了。
代码实现:
public static void deleteFileOrDirectory(String path) throws IOException {
Path filePath = Paths.get(path);
if (Files.isDirectory(filePath)) {
Files.walkFileTree(filePath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
Files.delete(dir);
return FileVisitResult.CONTINUE;
}
});
} else {
Files.delete(filePath);
}
}
代码说明:
deleteFileOrDirectory(String path)方法接收一个字符串路径参数path。- 使用
Paths.get(path)将字符串路径转换为Path对象。 - 使用
Files.isDirectory(filePath)判断路径是否表示目录。 - 如果是目录,则使用
Files.walkFileTree(filePath, new SimpleFileVisitor<Path>())遍历目录树。 SimpleFileVisitor<Path>类包含以下方法:visitFile(Path file, BasicFileAttributes attrs):访问文件时调用,用于删除文件。postVisitDirectory(Path dir, IOException exc):访问目录结束时调用,用于删除目录。
- 如果不是目录,则直接使用
Files.delete(filePath)删除文件。
总结:
本文介绍了如何使用 Java 语言编写一个删除目录或文件的方法。该方法使用 Files 类的 walkFileTree 方法遍历目录树,并通过 SimpleFileVisitor<Path> 类实现文件的删除和目录的删除操作。该方法能够根据路径类型进行不同的删除操作,并保证目录中的所有内容都被删除。
原文地址: http://www.cveoy.top/t/topic/m5Bw 著作权归作者所有。请勿转载和采集!