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 中的文件,但之后它们将关闭。
我发现了错误,问题出在调用顺序上。我觉得有点傻,但现在已经修复了。
我在 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 中的文件,但之后它们将关闭。
我发现了错误,问题出在调用顺序上。我觉得有点傻,但现在已经修复了。