无法使用Java删除文件夹
作者:互联网
我试图删除一个只有文件但没有子文件夹的文件夹,但操作失败.
码:
File rowFolder = new File(folderPath);
String[] files = rowFolder.list();
for (String file : files){
File deleteFile = new File(file);
System.out.println("deleting file -"+deleteFile.getName());
deleteFile.delete();
}
System.out.println("deleting folder -"+rowFolder.getName());
rowFolder.delete();
输出:
deleting file -testing.pdf
deleting file -app_json.json
deleting file -photo.jpg
deleting folder -bundle_folder
该代码不会删除任何文件夹或任何文件.这是为什么?
解决方法:
出于多种原因,删除操作可能会失败.该文件可能已被文件系统锁定,您可能没有权限或可能已被其他进程打开等.
如果您使用的是Java 7或更高版本,则可以使用javax.nio.* API.它更可靠&比legacy java.io.Fileclasses一致:
Path fp = file.toPath();
Files.delete(fp);
如果要捕获可能的异常:
try {
Files.delete(path);
} catch (NoSuchFileException x) {
System.err.format("%s: no such" + " file or directory%n", path);
} catch (DirectoryNotEmptyException x) {
System.err.format("%s not empty%n", path);
} catch (IOException x) {
// File permission problems are caught here.
System.err.println(x);
}
检查docs以获取有关Java 7中IO的更多信息
标签:java,file,file-io,java-io 来源: https://codeday.me/bug/20191011/1895376.html