更新:看起来 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); }在第一个示例中我需要做些什么来释放文件夹/文件以便能够删除它们?
1 回答
慕少森
TA贡献2019条经验 获得超9个赞
嗯,这需要大量的挖掘。原来你必须关闭数据库才能删除文件夹。实际上不需要关闭连接,因为关闭数据库将关闭所有连接。只需调用DriverManager.getConnection("jdbc:derby:;shutdown=true");
,您就可以参加比赛了。
添加回答
举报
0/150
提交
取消