file.delete()无法正常工作

时间:2015-08-23 15:07:14

标签: java file-io delete-file

我在Java中删除文件时遇到了一些问题。我正在为我的OOP类做一个简单的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

我需要更改路径吗?我希望该程序与操作系统无关,它可能会在Windows机器上进行测试。

编辑2

我更改了文件名,现在他们没有" ./"但仍然没有工作。我确认不是文件的任何其他开放流,唯一运行的是在程序的开头加载ArrayLists中的信息,但它们在之后关闭。

1 个答案:

答案 0 :(得分:0)

我发现错误,问题是按照调用的顺序。我感觉有点愚蠢,但现在已经修好了。