1 17 package org.apache.geronimo.common; 18 19 import java.io.File ; 20 import java.io.DataInputStream ; 21 import java.io.BufferedInputStream ; 22 import java.io.FileInputStream ; 23 import java.io.IOException ; 24 import java.util.zip.ZipFile ; 25 26 31 public class FileUtils { 32 35 public static boolean isJarFile(File file) throws IOException { 36 if(!isZipFile(file)) { 37 return false; 38 } 39 ZipFile zip = new ZipFile (file); 40 boolean manifest = zip.getEntry("META-INF/MANIFEST.MF") != null; 41 zip.close(); 42 return manifest; 43 } 44 45 48 public static boolean isZipFile(File file) throws IOException { 49 if(file.isDirectory()) { 50 return false; 51 } 52 if(!file.canRead()) { 53 throw new IOException ("Cannot read file "+file.getAbsolutePath()); 54 } 55 if(file.length() < 4) { 56 return false; 57 } 58 DataInputStream in = new DataInputStream (new BufferedInputStream (new FileInputStream (file))); 59 int test = in.readInt(); 60 in.close(); 61 return test == 0x504b0304; 62 } 63 64 } 65 | Popular Tags |