diff options
author | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
---|---|---|
committer | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
commit | e2d0f5d9c38561d67f23754c00addb4a3547efb2 (patch) | |
tree | 1832f16037c086b48266b8566aecc61f45f4e5f1 /src/test/SumUpClasses.java | |
download | fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.gz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.lz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.xz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.zip |
initial commit
Diffstat (limited to 'src/test/SumUpClasses.java')
-rw-r--r-- | src/test/SumUpClasses.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/test/SumUpClasses.java b/src/test/SumUpClasses.java new file mode 100644 index 0000000..6d80385 --- /dev/null +++ b/src/test/SumUpClasses.java @@ -0,0 +1,81 @@ +package test; + +import java.io.File; +import java.io.IOException; +import java.util.Enumeration; +import java.util.jar.JarFile; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + + +public class SumUpClasses { + + public static void main(String[] args) { + + try { + File dir = new File("C:\\revjava\\remote\\data\\input\\"); + + long[] res = getClasses(dir); + + System.out.println("Count: "+res[0]); + System.out.println("Size: "+res[1]/1024/1024); + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + private static long[] getClasses(File file) { + + if(file.isDirectory()) { + + long count = 0, size = 0; + + for(File f : file.listFiles()) { + long[] arr = getClasses(f); + count+=arr[0]; + size+=arr[1]; + } + + return new long[] {count, size}; + + } else { + String filename = file.getName(); + if(filename.endsWith(".class")) { + return new long[] {1, file.length()}; + } else if(filename.endsWith(".zip")) { + try { + return getClassesZip(new ZipFile(file)); + } catch(IOException ex) { + System.out.println("Cannot read file: " + file.getAbsolutePath()); + } + } else if(filename.endsWith(".jar")) { + try { + return getClassesZip(new JarFile(file)); + } catch(IOException ex) { + System.out.println("Cannot read file: " + file.getAbsolutePath()); + } + } + } + + return new long[] {0, 0}; + } + + private static long[] getClassesZip(ZipFile archive) { + + long count = 0, size = 0; + + Enumeration<? extends ZipEntry> en = archive.entries(); + while(en.hasMoreElements()) { + ZipEntry entr = (ZipEntry)en.nextElement(); + + if(!entr.isDirectory() && entr.getName().endsWith(".class")) { + count++; + size+=entr.getSize(); + } + } + + return new long[] {count, size}; + } + +} |