Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Logback: the reliable, generic, fast and flexible logging framework. Copyright (C) 1999-2011, QOS.ch. All rights reserved. This program and the accompanying materials are dual-licensed under either the terms of the Eclipse Public License v1.0 as published by the Eclipse Foundation or (per the licensee's choosing) under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.
 
 package ch.qos.logback.core.rolling.helper;
 
 import java.io.File;
 
 public class FileFilterUtil {
 
   public static void sortFileArrayByName(File[] fileArray) {
     Arrays.sort(fileArraynew Comparator<File>() {
       public int compare(File o1File o2) {
         String o1Name = o1.getName();
         String o2Name = o2.getName();
         return (o1Name.compareTo(o2Name));
       }
     });
   }
 
   public static void reverseSortFileArrayByName(File[] fileArray) {
     Arrays.sort(fileArraynew Comparator<File>() {
       public int compare(File o1File o2) {
         String o1Name = o1.getName();
         String o2Name = o2.getName();
         return (o2Name.compareTo(o1Name));
       }
     });
   }
 
   public static String afterLastSlash(String sregex) {
     int i = sregex.lastIndexOf('/');
     if (i == -1) {
       return sregex;
     } else {
       return sregex.substring(i + 1);
     }
   }
 
   static public boolean isEmptyDirectory(File dir) {
     if (!dir.isDirectory()) {
       throw new IllegalArgumentException("[" + dir + "] must be a directory");
     }
     String[] filesInDir = dir.list();
     if (filesInDir == null || filesInDir.length == 0) {
       return true;
     } else {
       return false;
     }
   }

  
Return the set of files matching the stemRegex as found in 'directory'. A stemRegex does not contain any slash characters or any folder separators.

Parameters:
file
stemRegex
Returns:
 
   public static File[] filesInFolderMatchingStemRegex(File file,
       final String stemRegex) {
 
     if (file == null) {
       return new File[0];
     }
     if (!file.exists() || !file.isDirectory()) {
       return new File[0];
     }
     return file.listFiles(new FilenameFilter() {
       public boolean accept(File dirString name) {
         return name.matches(stemRegex);
       }
     });
   }
 
   static public int findHighestCounter(File[] matchingFileArrayfinal String stemRegex) {
     int max = .;
     for (File aFile : matchingFileArray) {
       int aCounter = FileFilterUtil.extractCounter(aFilestemRegex);
       if (max < aCounter)
         max = aCounter;
     }
     return max;
   }
 
  static public int extractCounter(File filefinal String stemRegex) {
    Pattern p = Pattern.compile(stemRegex);
    String lastFileName = file.getName();
    Matcher m = p.matcher(lastFileName);
    if (!m.matches()) {
      throw new IllegalStateException("The regex [" + stemRegex
          + "] should match [" + lastFileName + "]");
    }
    String counterAsStr = m.group(1);
    return new Integer(counterAsStr).intValue();
  }
  public static String slashify(String in) {
    return in.replace('\\''/');
  }
  public static void removeEmptyParentDirectories(File file,
      int recursivityCount) {
    // we should never go more than 3 levels higher
    if (recursivityCount >= 3) {
      return;
    }
    File parent = file.getParentFile();
    if (parent.isDirectory() && FileFilterUtil.isEmptyDirectory(parent)) {
      parent.delete();
      removeEmptyParentDirectories(parentrecursivityCount + 1);
    }
  }
New to GrepCode? Check out our FAQ X