赞
踩
扫描任务:扫描出给定路径下的jar包,并找出其中的.dll文件
拿到任务需要做什么?
浅说一下我的方法。无论想要实现什么,我们首先要做的就是明确目标,梳理实现此功能的步骤,把需要实现的步骤细化,一点点的去实现。一开始慢一点没有关系,实现之后就会得到令人满足的成就感。分步骤来做
-
- public class Demo1 {
- //输入你想扫描的路径
-
- public static String topPath = "E:\\XXXX\\lib";
-
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) throws IOException {
- testFileDirOrName(topPath);
- }
-
- private static void testFileDirOrName(String path) throws IOException {
- File dirFile = new File(path);
- //判断抽象路径名中的文件或目录是否存在,存在返回True
- if (dirFile.exists()) {
- //返回抽象路径名数组,path抽象路径名表示的目录中的文件
- File[] files = dirFile.listFiles();
- if (files != null) {
- for (File fileChildDir : files) {
- //输出文件名或者文件夹名
- String s1 = fileChildDir.getName();
- //判断是否为目录
- if (fileChildDir.isDirectory()) {
- //目录名称为jcef32就跳过
- if (s1.equals("jcef32")) {
- continue;
- }
- System.out.println(s1+" : 此为目录名");
- //通过递归的方式,可以把目录中的所有文件全部遍历出来
- //返回抽象路径名的绝对路径名字符串。
- testFileDirOrName(fileChildDir.getAbsolutePath());
- } else if (fileChildDir.isFile()) {
- if (path.equals(topPath)) {
- //如果是topPath路径下的文件就跳过
- continue;
- }
- //判断是否存在后缀为.jar的文件
- if (s1.endsWith(".jar")) {
- System.out.println(s1 + " : 此为文件名");
- FileName(fileChildDir.getAbsolutePath());
- }
- }
- }
- }
- }
- }
-
-
- /**
- * 读取jar包
- * @param path1
- * @throws IOException
- */
- private static void FileName(String path1) throws IOException {
- File file1 = new File(path1);
- //打开供读取的jar文件
- JarFile jarFile = new JarFile(file1);
- //获取元素条目信息
- Enumeration jarEntries = jarFile.entries();
- //通过jarEntries(enumeration).hasMoreElements()是判断是否还有下一个元素
- while (jarEntries.hasMoreElements()) {
- //jarEntries.nextElement()得到下一个元素
- process(jarEntries.nextElement());
- }
- }
-
- /**
- * 筛选.dll文件
- * @param jarEntries
- */
- private static void process(Object jarEntries) {
- //jarEntry类用于表示 JAR 文件条目
- JarEntry entry = (JarEntry) jarEntries;
- //返回条目名称
- String name = entry.getName();
- if (name.endsWith(".dll")) {
- System.out.println(name);
- }
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。