【问题标题】:Files delete() method in Java is not workingJava中的文件删除()方法不起作用
【发布时间】:2021-12-23 02:09:55
【问题描述】:

无法删除在我的本地目录路径中创建的file001.txt 在 switch case 中使用 removeFile(s) 方法。然后方法removeFile(s) 调用类Employee_Remove,其中file.delete() 方法不会删除文件。请找到以下2个代码和屏幕截图。

我不想创建重复文件或重命名文件名。我只需要删除在本地目录中创建的文件。我不明白这个问题是代码问题还是 Eclipse 问题。 任何人都可以帮助解决这个问题。

case 3:
{
    System.out.print("\nPlease Enter Employee's ID :");
    String s=sc.nextLine();
    Employee_Remove epr =new Employee_Remove();
    epr.removeFile(s);
    break;
 }

class Employee_Remove {

    public void removeFile(String ID) {
        File file = new File("file" + ID + ".txt");
        if (file.exists()) {
            if (file.delete()) {
                System.out.println("\nEmployee has been removed Successfully");
            }
        } else {
            System.out.println("\nEmployee does not exists :( ");
        }
    }
}

【问题讨论】:

  • 你有输出吗?
  • 在我看来文件路径在错误的目录中。
  • 可能的。或者eclipse只是没有刷新UI。文件是否仍然存在于文件系统中?
  • 你有输出吗? – 没有输出,文件没有被删除。
  • 可能的。或者eclipse只是没有刷新UI。文件是否仍然存在于文件系统中?每当执行代码时,我都会手动刷新。但没有用,文件没有删除。

标签: java file path


【解决方案1】:

如果 Eclipse 控制台窗口没有输出,则意味着:

  1. 您的应用程序代码已找到该文件。如果没有找到,您会收到一条消息。
  2. 文件未被删除。如果删除成功,您会收到一条消息告诉您。

不清楚为什么您的应用程序找到了文件但没有将其删除。一种可能性是您的应用程序没有删除文件的权限。第二种可能性是其他东西打开了文件。在锁定文件的 Windows 上,这将阻止应用程序删除它。 (还有其他一些更晦涩的原因,但我怀疑它们是否适用于这里......)

如果您想获得能够解释为什么文件未被删除的更多信息的诊断信息,请改用较新的java.nio.file.* API;例如java.nio.file.Files::delete(Path).


如果输出与您描述的不一样,那么应用程序可能会删除文件(并说是这样)但 Eclipse 没有注意到。根据我的经验,Eclipse 不会注意到对不是由 Eclipse 本身进行的文件所做的更改。

如果是这种情况,那么执行 Eclipse 刷新应该会更新视图。 Eclipse 的快捷方式通常是 F5CNTRL-F5,但请检查键绑定。

【讨论】:

    猜你喜欢
    • 2016-10-04
    • 2017-01-16
    • 2014-02-18
    • 2020-07-14
    • 2018-12-22
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多