编程语言
首页 > 编程语言> > 无法使用Java删除文件夹

无法使用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