我试图删除一个只有文件但没有子文件夹的文件夹,但没有成功。
代码:
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.File
类:
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 - 无法使用 Java 删除文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22085706/