1.rename()可以改名...
2/  判断是否.....
package LWClass;
import java.io.*;
import java.util.Vector;
import java.awt.List;/**********************************************
功能说明:
★ 根据指定的路径,查找文件
***********************************************/public class findFile
{  private Vector oldSearchResult;
  private Vector searchResult;
  private Vector operations;
  private Vector strings;
  private String arbString;
  private String arbChar;
  String emptyString;  String fieldIllegalSimbols;
  String fieldMultipleCharacterPattern;
  String fieldSingleCharacterPattern;
  boolean fieldRecurse;
  String fieldResultLastFoundFilename;
  String fieldInputPath;
  String fieldInputPattern;
  String fieldResultListOfFilenames[];
  boolean patExtEmpty;
  boolean tagExtEmpty;
  int fieldResultCountOfFoundFiles;  private boolean abort;  protected String[] result;  public void abort()
  {
    abort = true;
  }  /***********************************************
功能: 查找文件
使用说明:
参数含义: 无
返回值含义:-1:搜索路径不存在或不是个目录
-2:搜索失败
1:搜索成功
************************************************/
  protected int computeFunction()
  {
    oldSearchResult = (Vector)searchResult.clone();
    searchResult.removeAllElements();
    if(fieldMultipleCharacterPattern.equals(""))
      return -2;    if(fieldSingleCharacterPattern.equals(""))
      return -2;    for(int i = 0; i < fieldIllegalSimbols.length(); i++)
      if(fieldInputPath.indexOf(fieldIllegalSimbols.charAt(i)) != -1)
        return -2;
    File path = new File(fieldInputPath);
    if(!path.exists() || !path.isDirectory()) //如果搜索路径不存在或不是个目录
      return -1;    searchFolder(fieldInputPath);    if(!searchResult.isEmpty())
    {
      String arr[] = new String[searchResult.size()];
      searchResult.copyInto(arr);
      fieldResultListOfFilenames = new String[arr.length];
      System.arraycopy(arr, 0, fieldResultListOfFilenames, 0, arr.length);
      fieldResultCountOfFoundFiles = searchResult.size();    }
    return 1;
  }
  public String getIllegalSymbols()
  {
    if(fieldIllegalSimbols == null)
      try
    {
      fieldIllegalSimbols = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating illegalSimbolsproperty.");
    }
    return fieldIllegalSimbols;
  }  public String getInputPath()
  {
    if(fieldInputPath == null)
      try
    {
      fieldInputPath = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating inputPathproperty.");
    }
    return fieldInputPath;
  }  public String getInputPattern()
  {
    if(fieldInputPattern == null)
      try
    {
      fieldInputPattern = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating inputPatternproperty.");
    }
    return fieldInputPattern;
  }  public String getMultipleCharacterPattern()
  {
    if(fieldMultipleCharacterPattern == null)
      try
    {
      fieldMultipleCharacterPattern = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating multipleCharacterPatternproperty.");
    }
    return fieldMultipleCharacterPattern;
  }  public boolean getRecurse()
  {
    return fieldRecurse;
  }  public int getResultCountOfFoundFiles()
  {
    fieldResultCountOfFoundFiles = searchResult.size();
    return fieldResultCountOfFoundFiles;
  }  public String getResultLastFoundFilename()
  {
    if(fieldResultLastFoundFilename == null)
      try
    {
      fieldResultLastFoundFilename = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating resultLastFoundFilenameproperty.");
    }
    return fieldResultLastFoundFilename;
  }  public String[] getResultListOfFilenames()
  {
    return fieldResultListOfFilenames;
  }  public String getSingleCharacterPattern()
  {
    if(fieldSingleCharacterPattern == null)
      try
    {
      fieldSingleCharacterPattern = new String();
    }
    catch(Throwable _ex)
    {
      System.err.println("Exception creating singleCharacterPatternproperty.");
    }
    return fieldSingleCharacterPattern;
  }

解决方案 »

  1.   

    /***********************************************
    功能: 匹配函数
    使用说明:
    参数含义: aTarget:要匹配的字符串
    aPattern:匹配模式
    返回值含义:如果匹配成功,返回true;反之,返回false
    ************************************************/
      private boolean match(String aTarget, String aPattern)
      {
        String target = aTarget;
        String pattern = aPattern;
        if(aTarget == null)
          throw new IllegalArgumentException("aTarget is null");
        if(aPattern == null)
          throw new IllegalArgumentException("aPattern is null");
        if(pattern.equals("*.*"))
          pattern = "*";
        if(pattern.equals(arbString))
          return true;
        if(target.equals(pattern))
          return true;
        if(patExtEmpty && target.length() == 1 && tagExtEmpty && pattern.equals("."))
        {
          patExtEmpty = false;
          tagExtEmpty = false;
          return true;
        }
        if(target.equals(emptyString)) //要匹配的串为空
          return false;
        if(pattern.equals(emptyString)) //匹配模式为空
          return false;
    //arbString 初始值为"*" arbChar初始值为"?"
        if(pattern.substring(0, 1).equals(arbString) && pattern.substring(1, 2).equals(arbString))
          pattern = pattern.substring(1);
        else if(pattern.substring(0, 1).equals(arbString) && pattern.substring(1, 2).equals(arbChar))
        {
          pattern = arbChar + arbString + pattern.substring(2);
        }
        else
        {
          if(pattern.substring(0, 1).equals(arbChar)) //如果匹配模式的第一个字符为\u00B4?\u00B4,则从第二个字符开始比较
            return match(target.substring(1), pattern.substring(1));
          if(pattern.substring(0, 1).equals(arbString))
          {
            for(int i = 0; i < target.length(); i++)
              if(match(target.substring(i), pattern.substring(1)))
                return true;        return false;
          }
          if(pattern.substring(0, 1).equals(target.substring(0, 1)))
            return match(target.substring(1), pattern.substring(1));
          else
            return false;
        }
        return match(target, pattern);
      }
      /***********************************************
    功能: 搜索指定路径的文件。
    使用说明:
    参数含义: path:指定要搜索的路径
    返回值含义:无
    ************************************************/
      private void searchFolder(String path)
      {
        File f = new File(path);
        String list[] = f.list(); //返回由path指定路径里的所有文件名和目录名
        if(list != null){
          for(int i = 0; i < list.length; i++)
          {
            File file = new File(path + list[i]);        if(file.isFile())
            {
              if(list[i].indexOf(".") == -1) //文件没有后缀
                tagExtEmpty = true;
              else
                tagExtEmpty = false;          if(fieldInputPattern.charAt(fieldInputPattern.length() - 1) == '.')
                patExtEmpty = true;          if(match(list[i], fieldInputPattern))
              {
                String resultPath = file.getPath();
                int _tmp = fieldResultCountOfFoundFiles;
                searchResult.addElement(resultPath);
                String oldResultLastFoundFilename = fieldResultLastFoundFilename;
                fieldResultLastFoundFilename = resultPath;            fieldResultCountOfFoundFiles = searchResult.size();
              }
            } else
              if(fieldRecurse)
              {
                searchFolder(path + list[i] + System.getProperty("file.separator"));
              }
          }
        }
      }  public void setIllegalSymbols(String illegalSymbols)
      {
        String oldValue = fieldIllegalSimbols;
        fieldIllegalSimbols = illegalSymbols;  }  public void setInputPath(String inputPath)
      {
        if(inputPath == null)
          throw new IllegalArgumentException("Can not set inputPath to null!");    if(!inputPath.endsWith(System.getProperty("file.separator")) && !inputPath.endsWith("/") && inputPath.length() > 0)
          inputPath = inputPath + System.getProperty("file.separator");
        fieldInputPath = inputPath;
      }
      /***********************************************
    功能: 设置匹配模式
    使用说明:
    参数含义: inputPattern:匹配模式
    返回值含义:无
    ************************************************/
      public void setInputPattern(String inputPattern)
      {
        if(inputPattern == null || inputPattern.length() == 0)
          return;
        if(inputPattern == ".")
          return;
        fieldInputPattern = inputPattern;  }  public void setMultipleCharacterPattern(String multipleCharacterPattern)
      {
        String _tmp = fieldMultipleCharacterPattern;
        fieldMultipleCharacterPattern = multipleCharacterPattern;
        if(multipleCharacterPattern == null || multipleCharacterPattern.length() == 0)
          throw new IllegalArgumentException("Can not set multipleCharacterPattern to null!");
        fieldMultipleCharacterPattern = multipleCharacterPattern;
        if(multipleCharacterPattern.length() == 1)
        {
          arbString = multipleCharacterPattern;
        } else
        {
          arbString = multipleCharacterPattern.substring(0, 1);
          fieldMultipleCharacterPattern = arbString;
        }
      }  /***********************************************
    功能: 是否搜索子文件夹
    使用说明:
    参数含义: recurse:true ,搜索
    false,不搜索
    返回值含义:无
    ************************************************/
      public void setRecurse(boolean recurse)
      {
        boolean oldValue = fieldRecurse;
        fieldRecurse = recurse;  }  public void setSingleCharacterPattern(String singleCharacterPattern)
      {
        String _tmp = fieldSingleCharacterPattern;
        if(singleCharacterPattern == null || singleCharacterPattern.length() == 0)
          throw new IllegalArgumentException("Can not set singleCharacterPattern to null!");
        if(singleCharacterPattern.length() == 1)
          fieldSingleCharacterPattern = singleCharacterPattern;
        else
          fieldSingleCharacterPattern = singleCharacterPattern.substring(0, 1);
        arbChar = fieldSingleCharacterPattern;
      }
      /***********************************************
    功能: 搜索文件
    使用说明:
    参数含义: 无
    返回值含义:结果集
    -1:搜索路径不存在或不是个目录
    -2:搜索失败
    1:搜索成功
    ************************************************/
      public Vector findFile(){
        if(computeFunction()==1)
          return searchResult;
        else{
          searchResult.clear();
          if(computeFunction()==-1){
            searchResult.addElement("-1");
          }else{
            searchResult.addElement("-2");
          }
        }
        return searchResult;
      }  public findFile()
      {
        oldSearchResult = new Vector();
        searchResult = new Vector(10);
        operations = new Vector();
        strings = new Vector();
        arbString = "*";
        arbChar = "?";
        emptyString = "";    fieldIllegalSimbols = "<>|";
        fieldMultipleCharacterPattern = "*";
        fieldSingleCharacterPattern = "?";
        fieldRecurse = false;
        fieldResultLastFoundFilename = "";
        fieldInputPath = "";
        fieldInputPattern = "";
        fieldResultListOfFilenames = new String[0];
        patExtEmpty = false;
        tagExtEmpty = false;
        fieldResultCountOfFoundFiles = 0;
        abort = false;
      }
    }