Whatever message this page gives is out now! Go check it out!
archive="C:\logfiles.zip"
name="LogFiles">
<cfoutput query="LogFiles">
#Name#,#Size#, #Compressed# <BR>
</cfoutput>import java.util.Hashtable ;
import java.io.FileInputStream ;
import java.util.zip.* ;
public class ZipBrowser implements CustomTag {
public void processRequest( Request request, Response response )
throws Exception {
// Validate that required attributes were passed.
if (!request.attributeExists( "ARCHIVE" ) || !request.attributeExists( "NAME" ) ) {
throw new Exception(
"Missing attribute (ARCHIVE and NAME are both " +
"required attributes for this tag)" ) ;
}
// get attribute values
String strArchive = request.getAttribute( "ARCHIVE" ) ;
String strName = request.getAttribute( "NAME" ) ;
// create a query to use for returning the list of files
String[] columns = { "Name", "Size", "Compressed" } ;
int iName = 1, iSize = 2, iCompressed = 3 ;
Query files = response.addQuery( strName, columns ) ;
// read the ZIP file and build a query from its contents
ZipInputStream zin = new ZipInputStream( new FileInputStream(strArchive) ) ;
ZipEntry entry ;
while ( ( entry = zin.getNextEntry()) != null ) {
// Add a row to the results.
int iRow = files.addRow() ;
// populate the row with data
files.setData( iRow, iName, entry.getName() ) ;
files.setData( iRow, iSize, String.valueOf(entry.getSize()) ) ;
files.setData( iRow, iCompressed,
String.valueOf(entry.getCompressedSize())) ;
// Finish up with entry.
zin.closeEntry() ;
}
// Close the archive.
zin.close() ;
}
}