• 读取资源目录文件


    项目中很普遍使用maven进行项目的构建,但是使用maven时,由于网络不稳定,或者需要翻墙等因素,导致部分jar可能下载失败,只能重新下载才能使项目正常启动。
    如何快速找到那个依赖报错了呢?不多唠叨了,见下文解决方案:
     
     1 package cn.xxx.webservice;
     2 
     3 import java.io.*;
     4 import java.util.*;
     5 
     6 import org.slf4j.Logger;
     7 import org.slf4j.LoggerFactory;
     8 
     9 /**
    10  * 
    11  * @Title: TestIo
    12  * @Description: 通过读取指定的目录及子目录下指定文件名的路径,获取需要的资源,返回结果为List14  * @date 2018年5月8日 下午9:29:35
    15  */
    16 public class TestIo {
    17 
    18     private static Logger logger = LoggerFactory.getLogger(TestIo.class);
    19 
    20     /**
    21      * 
    22      * @Title: getListFiles  
    23      * @Description: 通过制定路径,后缀,以及是否循环遍历子目录来获取目录下的资源文件25      * @date 2018年5月8日 下午8:33:31
    26      * @param path 文件路径
    27      * @param suffix 后缀名, 为空则表示所有文件
    28      * @param flag 是否遍历子目录
    29      * @return List<String> 
    33      */
    34     public static List<String> getFilesList(String path, String suffix, boolean flag) {
    35         List<String> lstFileNames = new ArrayList<String>();
    36         File file = new File(path);
    37         return TestIo.listFile(lstFileNames, file, suffix, flag);
    38     }
    39 
    40     // aether-ed239b5e-5ab7-49c1-8f71-df76605fb76e-spring-beans-5.0.5.RELEASE.jar.sha1-in-progress
    41     // 以in-progress为结尾的为下载失败的依赖,常见的下载依赖失败的后缀,.sha1-in-progress/.jar-in-progress/.pom-in-progress
    42     private static List<String> listFile(List<String> lstFileNames, File f, String suffix, boolean flag) {
    43         // 若是目录, 采用递归的方法遍历子目录
    44         if (f.isDirectory()) {
    45             File[] t = f.listFiles();
    46 
    47             for (int i = 0; i < t.length; i++) {
    48                 if (flag || t[i].isFile()) {
    49                     listFile(lstFileNames, t[i], suffix, flag);
    50                 }
    51             }
    52         } else {
    53             String filePath = f.getAbsolutePath();
    54             if (!suffix.equals("")) {
    55                 int begIndex = filePath.lastIndexOf("."); // 最后一个.(即后缀名前面的.)的索引
    56                 String tempsuffix = "";
    57 
    58                 if (begIndex != -1) {// 这里可以筛选指定后缀的文件
    59                     tempsuffix = filePath.substring(begIndex + 1, filePath.length());
    60                     // sha1-in-progress包含in-progress
    61                     // 这里因为指定的后缀与截取.的后缀,名字不一致,所以加一个|| tempsuffix.contains(suffix)条件
    62                     if (tempsuffix.equals(suffix) || tempsuffix.contains(suffix)) {
    63                         lstFileNames.add(filePath);
    64                     }
    65                 }
    66             } else {
    67                 lstFileNames.add(filePath);
    68             }
    69         }
    70         return lstFileNames;
    71     }
    72 
    73     public static void main(String[] args) {
    74         List<String> list = getFilesList("G:\repository", "in-progress", true);
    75         logger.debug("依赖下载失败的个数:{}",list.size());
    76         logger.info("依赖下载失败的依赖目录:{}",list);
    77     }
    78 }
  • 相关阅读:
    路飞学城Python-Day19
    路飞学城Python-Day18
    路飞学城Python-Day17
    ES6新特性概览
    关于Flex,有12个属性很重要
    Web前端工程师成长之路——知识汇总
    解决ajax跨域请求 (总结)
    项目中关于AJAX的使用总结
    Web前端性能优化——如何提高页面加载速度
    Canvas和SVG的区别
  • 原文地址:https://www.cnblogs.com/summary-2017/p/9009201.html
Copyright © 2020-2023  润新知