[Java] 用正则条件匹配目录 →→→→→进入此内容的聊天室

来自 , 2021-04-03, 写在 Java, 查看 147 次.
URL http://www.code666.cn/view/2dea61ee
  1.         //用于缓存文件列表
  2.         private ArrayList files = new ArrayList();
  3.         //用于承载文件路径
  4.         private String _path;
  5.         //用于承载未合并的正则公式
  6.         private String _regexp;
  7.        
  8.         class MyFileFilter implements FileFilter {
  9.  
  10.               /**
  11.                * 匹配文件名称
  12.                */
  13.               public boolean accept(File file) {
  14.                 try {
  15.                   Pattern pattern = Pattern.compile(_regexp);
  16.                   Matcher match = pattern.matcher(file.getName());                
  17.                   return match.matches();
  18.                 } catch (Exception e) {
  19.                   return true;
  20.                 }
  21.               }
  22.             }
  23.        
  24.         /**
  25.          * 解析输入流
  26.          * @param inputs
  27.          */
  28.         FilesAnalyze (String path,String regexp){
  29.             getFileName(path,regexp);
  30.         }
  31.        
  32.         /**
  33.          * 分析文件名并加入files
  34.          * @param input
  35.          */
  36.         private void getFileName(String path,String regexp) {
  37.             //目录
  38.               _path=path;
  39.               _regexp=regexp;
  40.               File directory = new File(_path);
  41.               File[] filesFile = directory.listFiles(new MyFileFilter());
  42.               if (filesFile == null) return;
  43.               for (int j = 0; j < filesFile.length; j++) {
  44.                 files.add(filesFile[j]);
  45.               }
  46.               return;
  47.             }
  48.    
  49.         /**
  50.          * 显示输出信息
  51.          * @param out
  52.          */
  53.         public void print (PrintStream out) {
  54.             Iterator elements = files.iterator();
  55.             while (elements.hasNext()) {
  56.                 File file=(File) elements.next();
  57.                     out.println(file.getPath());    
  58.             }
  59.         }
  60.  
  61.         public static void output(String path,String regexp) {
  62.  
  63.             FilesAnalyze fileGroup1 = new FilesAnalyze(path,regexp);
  64.             fileGroup1.print(System.out);
  65.         }
  66.    
  67.         public static void main (String[] args) {
  68.             output("C:\\","[A-z|.]*");
  69.         }

回复 "用正则条件匹配目录"

这儿你可以回复上面这条便签

captcha