Unable to delete database file after closing UCanAccess connection

Viewed 786

I used UCanAccess to connect to temporary Access files for reading data, after which I want to delete these temporary files. However, I always get file.delete()=false.

Here is my code

public class JAccess {
    static Connection conn;
    static Statement stat;

    public static void connect(String DBFilename) {
        try {used ucanaccess to connect temporary access files
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            String DataSource = "jdbc:ucanaccess://" + DBFilename;
            String user = "user";
            String pw = "pw";
            conn = DriverManager.getConnection(DataSource, user, pw);
            stat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public static void disconnect() {
       try {
            stat.close();
            conn.close();
        } catch (Exception e) {
            System.out.println(e);
        }
        stat = null;
        conn = null;
    }
}


public void SelectTable(String DBFilename) throws SQLException {
    JAccess.connect(DBFilename);
    JAccess.disconnect();
}

public static void main(String[] args) throws SQLException {
.........
    SelectTable(DBFilename);
    File f = new File(DBFilename);
    f.delete();

Why is f.delete() failing?

1 Answers
Related