为了账号安全,请及时绑定邮箱和手机立即绑定

首次连接到 derby 时,文件夹/文件删除不起作用

首次连接到 derby 时,文件夹/文件删除不起作用

动漫人物 2021-12-22 20:27:50
更新:看起来 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"); ,您就可以参加比赛了。


查看完整回答
反对 回复 2021-12-22
  • 1 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信