file.delete() 无法正常工作

file.delete() not working properly

我在 Java 中删除文件时遇到一些问题。我正在为我的 OOP class 做一个简单的 CRUD 应用程序,我们需要使用文件作为数据库。我试图创建一个函数来擦除数据库(删除所有数据库文件并保存新的空文件),但是,到目前为止,我总是收到成功消息,但文件仍然存在,未被触及。

我的 config.java 文件中的文件路径是这样设置的:

private String fileBooks = "books.dat";
private String fileUsers = "users.dat";
private String fileOperations = "operations.dat";

我有这个功能,负责文件擦除:

public void deleteFiles() {
        try {
            File fbooks = new File(config.getFileBooks());
            File fusers = new File(config.getFileUsers());
            File fop = new File(config.getFileOperations());
            if(fbooks.delete() && fusers.delete() && fop.delete()){
                JOptionPane.showMessageDialog(null, "Success!", 
                        "Database cleaning", JOptionPane.PLAIN_MESSAGE);
            }else{
                JOptionPane.showMessageDialog(null, "Error!", 
                        "Database cleaning", JOptionPane.ERROR_MESSAGE);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我检查了继承、控制器,一切正常。我做错了什么?是不是路径有问题?

如果是有用的信息,我正在 运行宁 Ubuntu 14.04 LTS,使用 NetBeans 进行编码。

欢迎任何帮助和代码建议。

编辑:

我添加了 System.out.println(fbooks.getAbsoluteFile()) 这是我的输出:

 /home/dotk/Dropbox/College/OOP/TP02/hw02/books.dat
 /home/dotk/Dropbox/College/OOP/TP02/hw02/users.dat
 /home/dotk/Dropbox/College/OOP/TP02/hw02/operations.dat

我需要更改路径吗?我希望程序是 OS 独立的,它可能会在 windows 机器上进行测试。

编辑 2

我更改了文件名,现在它们没有“./”但仍然无法使用。我确认没有任何其他打开文件的流,唯一 运行 在程序开始时将信息加载到 ArrayLists 中的文件,但之后它们将关闭。

我发现了错误,问题出在调用顺序上。我觉得有点傻,但现在已经修复了。