Mega Code Archive

 
Categories / Java / File Input Output
 

Displaying contents of a compressed zip file

import java.util.ArrayList; import java.util.Date; import java.util.Enumeration; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; public class ZipFileViewer extends JFrame {   private JTable m_zipTable;   private ZipTableModel m_zipTableModel;   public ZipFileViewer(String zipFile, List zipEntries) {     m_zipTableModel = new ZipTableModel(zipEntries);     m_zipTable = new JTable(m_zipTableModel);     JScrollPane scrollPane = new JScrollPane(m_zipTable);     m_zipTable.setShowVerticalLines(true);     m_zipTable.setShowHorizontalLines(false);     getContentPane().add(scrollPane);     setSize(800, 400);     setVisible(true);   }   public static void main(String[] arg) throws Exception {     String zipFileName = arg[0];     List zipFileList = null;     ZipFile zipFile = new ZipFile(zipFileName);     Enumeration zipEntries = zipFile.entries();     zipFileList = new ArrayList();     while (zipEntries.hasMoreElements()) {       zipFileList.add((ZipEntry) (zipEntries.nextElement()));     }     ZipFileViewer zipFileViewer = new ZipFileViewer(zipFileName, zipFileList);   } } class ZipTableModel extends AbstractTableModel {   public static final int NAME = 0;   public static final int SIZE = 1;   public static final int COMP_SIZE = 2;   public static final int TYPE = 3;   public static final int LAST_MODI = 4;   public String[] m_colNames = { "File Name", "Size", "Compressed Size", "Type", "Last Modified" };   private List m_zipEntries;   public ZipTableModel(List zipEntries) {     super();     m_zipEntries = zipEntries;   }   public int getColumnCount() {     return m_colNames.length;   }   public int getRowCount() {     return m_zipEntries.size();   }   public String getColumnName(int col) {     return m_colNames[col];   }   public Object getValueAt(int row, int col) {     ZipEntry zipEntry = (ZipEntry) (m_zipEntries.get(row));     switch (col) {     case NAME:       return zipEntry.getName();     case SIZE:       if (zipEntry.isDirectory()) {         return "";       } else {         return String.valueOf(zipEntry.getSize() / 1000) + " KB";       }     case COMP_SIZE:       if (zipEntry.isDirectory()) {         return "";       } else {         return String.valueOf(zipEntry.getCompressedSize() / 1000) + " KB";       }     case TYPE:       if (zipEntry.isDirectory()) {         return "Directory";       } else {         return "File";       }     case LAST_MODI:       return String.valueOf(new Date(zipEntry.getTime()));     }     return new String();   } }