private void extractFile() {
        if (contentList.isSelectionEmpty()) {
            JOptionPane.showMessageDialog(this, "Файл не выбран");
        } else {
            if ((extractedFile.getDIR_Attr() 
                    & extractor.getATTR_DIRECTORY()) == extractor.getATTR_DIRECTORY()) {
                JOptionPane.showMessageDialog(this, "Нельзя извлекать директории в данной версии программы");
            } else {
                JFileChooser fileChooser = new JFileChooser();
                fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
                fileChooser.setSelectedFile(new File(extractedFile.getShortName() + "." + extractedFile.getExpansion()));
                int answer = fileChooser.showDialog(null, "Извлечь файл в...");
                if (answer == JFileChooser.APPROVE_OPTION) {
                    File newF = new File(fileChooser.getCurrentDirectory().getAbsolutePath()
                            + "/" + extractedFile.getShortName().trim() + "." + extractedFile.getExpansion());
                    try {
                        FileOutputStream os = new FileOutputStream(newF);
                        os.write(extractor.extractFile(extractedFile));
                        os.close();
                        setExtractStatusSuccess(fileChooser.getCurrentDirectory().getAbsolutePath()
                            + "\\" + extractedFile.getShortName().trim() + "." + extractedFile.getExpansion());
                    } catch(Exception e) {
                        e.printStackTrace();
                        setExtractStatusFailed();
                    }
                } else {
                    JOptionPane.showMessageDialog(this, "Отмена извлечения");
                }            
            }
        }
    }