public ExtractWorker(ExtractingDialog ed, File pack) {
        this.ed = ed;
        this.pack = pack;
        try {
            try (ZipFile zf = new ZipFile(pack)) {
                this.totalFiles = zf.size();
                System.out.println("[Package] Total files: " + this.totalFiles);
            }
        } catch (ZipException ex) {
            JOptionPane.showMessageDialog(ed, "Failed to extract: " + ex.toString(), "Extracting fail", JOptionPane.ERROR_MESSAGE);
        } catch (IOException ex) {
            Logger.getLogger(ExtractWorker.class.getName()).log(Level.SEVERE, null, ex);
        }
    }