List all files in the classpath or in a JarTag(s): IO
List the files found in the classpath, the bootclasspath, the extension directory and in a Jar.
import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; public class FileUtils { /** * list files in the given directory and subdirs (with recursion) * @param paths * @return */ public static List<File> getFiles(String paths) { List<File> filesList = new ArrayList<File>(); for (final String path : paths.split(File.pathSeparator)) { final File file = new File(path); if( file.isDirectory()) { recurse(filesList, file); } else { filesList.add(file); } } return filesList; } private static void recurse(List<File> filesList, File f) { File list[] = f.listFiles(); for (File file : list) { if (file.isDirectory()) { recurse(filesList, file); } else { filesList.add(file); } } } /** * List the content of the given jar * @param jarPath * @return * @throws IOException */ public static List<String> getJarContent(String jarPath) throws IOException{ List<String> content = new ArrayList<String>(); JarFile jarFile = new JarFile(jarPath); Enumeration<JarEntry> e = jarFile.entries(); while (e.hasMoreElements()) { JarEntry entry = (JarEntry)e.nextElement(); String name = entry.getName(); content.add(name); } return content; } public static void main(String args[]) throws Exception { List<File> list = FileUtils.getFiles(System.getProperty("java.class.path")); for (File file: list) { System.out.println(file.getPath()); } list = FileUtils.getFiles(System.getProperty("sun.boot.class.path")); for (File file: list) { System.out.println(file.getPath()); } list = FileUtils.getFiles(System.getProperty("java.ext.dirs")); for (File file: list) { System.out.println(file.getPath()); } List<String> content = FileUtils.getJarContent("c:/temp/DirWatch.jar"); for (String file: content) { System.out.println(file); } } }
mail_outline
Send comment, question or suggestion to howto@rgagnon.com