环境:
- Linux Ubuntu 14.04LTS
- Java 1.7
当前代码:
String fileName = ".fileName";
try {
java.io.File F = new java.io.File(fileName);
java.io.RandomAccessFile RF = new java.io.RandomAccessFile(F,"rwd");
RF.close();
boolean deleted = F.delete();
System.out.println("File was deleted: " + deleted);
} catch (FileNotFoundException e1) {
System.out.println("Unable to access file: " + e1.getMessage());
}
文件仍然存在,但 deleted 为 true,没有捕获到 FileNotFoundException
。
最佳答案
以下其中一项可能是您的问题:
- 你是在正确的目录中删除吗?我注意到您指定的不是绝对路径,而是相对路径,这并不意味着您是故意指定相对路径。您可能正在删除另一个目录中的内容。
- 关闭文件
F
,您让句柄保持打开状态,我不确定后果。 - 您如何验证“它仍然存在”?
ls
而不是cat
或nano
或任何正确的东西?
及其他调试:
- 打开 RF 重要吗? (不应该)。
- 它是一个隐藏文件真的重要吗?您实际上删除的是什么文件?
- 这是否发生在不同的目录中?
- 如果您使用
chmod
锁定对相关文件的读/写访问权限,是否会发生这种情况?如果你阻止读取什么失败,如果你阻止写入什么失败?我强烈怀疑这会阐明您的问题。
关于java - 无法使用 Java 删除 Linux 中的隐藏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706205/