更新:看起来 system.exit(0) 正在解锁文件并允许第二个代码示例工作。如何在不调用 system.exit() 的情况下解锁文件?
我有两个代码示例。首先创建一个数据库,关闭连接,然后尝试删除数据库。尝试删除目录文件夹时失败。
第二个代码示例只是删除文件夹。它有效并且与第一个代码示例中使用的代码相同。
我认为可能存在某种类型的时间问题。即使在第一个示例中发生删除之前关闭连接,我想知道删除操作是否由于某些潜在连接而不起作用。
第一个代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.io.FileUtils;
import java.io.*;
public class DBtest{
public static void main(String[] args) {
System.out.print('\u000C');
String db = "test2";
File file = new File(db);
Connection conn = getDB(db);
try{
if (conn != null) conn.close();
System.out.println("connection closed " );
}catch(SQLException e){
System.out.println("connection NOT closed " + e);
System.exit(0);
}
deleteDirectory(file);
System.exit(0);
}
public static boolean deleteDirectory(File directoryToBeDeleted){
File[] allContents = directoryToBeDeleted.listFiles();
if (allContents != null) {
for (File file : allContents) {
deleteDirectory(file);
}
}
directoryToBeDeleted.setWritable(true);
System.out.println(directoryToBeDeleted.toString());
return directoryToBeDeleted.delete();
}
第二个代码示例:
import org.apache.commons.io.FileUtils;
import java.io.*;
public class DirectoryDelete
{
public static void main(String[] args){
System.out.println('\u000C');
File file = new File("test2");
deleteDirectory(file);
}
在第一个示例中我需要做些什么来释放文件夹/文件以便能够删除它们?
慕少森
相关分类