file.delete() 即使文件可写也返回 false
file.delete() returning false even file is writable
我正在尝试将文件复制到目录然后将其删除,但 file.delete() 一直返回 false
这是我的代码:
for (File file : list) {
if (!file.isDirectory()) {
try {
FileUtils.copyFileToDirectory(file, path);
file.setWritable(true);
System.out.println(file.delete());
if(file.exists()){
file.deleteOnExit();
}
} catch (IOException e) {
System.out.println(e);
}
}
}
您可以解决的想法很少。
- 如果要删除文件,请先关闭所有连接和流。之后删除文件
- 确保您拥有文件的删除权限
- 确保您在正确的目录中。尝试使用绝对路径删除文件,以防删除不起作用。该文件的路径可能不正确。
使用Files.delete。 delete(Path) 方法删除文件,如果删除失败则抛出异常。例如,如果文件不存在,则抛出 NoSuchFileException。您可以捕获异常以确定删除失败的原因,如下所示:请参阅 Oracle 文档 here
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);
}
我正在尝试将文件复制到目录然后将其删除,但 file.delete() 一直返回 false
这是我的代码:
for (File file : list) {
if (!file.isDirectory()) {
try {
FileUtils.copyFileToDirectory(file, path);
file.setWritable(true);
System.out.println(file.delete());
if(file.exists()){
file.deleteOnExit();
}
} catch (IOException e) {
System.out.println(e);
}
}
}
您可以解决的想法很少。
- 如果要删除文件,请先关闭所有连接和流。之后删除文件
- 确保您拥有文件的删除权限
- 确保您在正确的目录中。尝试使用绝对路径删除文件,以防删除不起作用。该文件的路径可能不正确。
使用Files.delete。 delete(Path) 方法删除文件,如果删除失败则抛出异常。例如,如果文件不存在,则抛出 NoSuchFileException。您可以捕获异常以确定删除失败的原因,如下所示:请参阅 Oracle 文档 here
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); }