java 删除文件夹
时间: 2023-10-30 20:07:47 浏览: 166
java删除指定文件夹或者文件
5星 · 资源好评率100%
为了删除Java中的文件夹,你可以使用以下几种方法:
方法一:使用递归删除文件夹及其文件。
```java
File file = new File("E:/河南省乡镇点/GIS/");
deleteFile(file);
public static void deleteFile(File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) {
f.delete();
} else {
deleteFile(f);
}
}
file.delete();
}
```
方法二:使用Files.walkFileTree方法遍历删除文件夹及其文件。
```java
Path path = Paths.get("E:\\河南省乡镇点\\GIS");
Files.walkFileTree(path, new SimpleFileVisitor<>() {
@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;
}
});
```
方法三:使用强制删除,如果一次删除失败,则进行多次尝试,直到删除成功为止。
```java
File file = new File("E:/河南省乡镇点/GIS/");forceDelete(file);
public static boolean forceDelete(File file) {
boolean result = file.delete();
int tryCount = 0;
while (!result && tryCount < 10) {
System.gc();
result = file.delete();
tryCount++;
}
return result;
}
```
方法四:利用NIO流删除文件夹及其文件。
```java
Path path = Paths.get("E:/河南省乡镇点/GIS/");
try (Stream<Path> walk = Files.walk(path)) {
walk.sorted(Comparator.reverseOrder())
.map(Path::toFile)
.forEach(File::delete);
}
```
阅读全文