MyEclipse汉化报错

按照csdn搜到的MyEclipse汉化教程走到运行代码后,运行不了代码,报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at CreatePluginsConfig.print(CreatePluginsConfig.java:46)
at CreatePluginsConfig.main(CreatePluginsConfig.java:85)
运行代码
import java.io.File;

/**

  • MyEclipse 8.x安装插件代码生成器
  • @author Administrator
  • /
    public class CreatePluginsConfig {
    private String path; public CreatePluginsConfig(String path) { public void print() {
      List list = getFileList(path);  
      if (list == null) {   
          return;   
      }   
    
      int length = list.size();   
      for (int i = 0; i < length; i++) {   
          String result = "";   
          String thePath = getFormatPath(getString(list.get(i)));   
          File file = new File(thePath);   
          if (file.isDirectory()) {   
              String fileName = file.getName();   
              if (fileName.indexOf("_") < 0) {   
                  continue;   
              }   
              String[] filenames = fileName.split("_");   
              String filename1 = filenames[0];   
              String filename2 = filenames[1];   
              result = filename1 + "," + filename2 + ",file:/" + path + "\\"  
                      + fileName + "\\,4,false";   
              System.out.println(result);   
          } else if (file.isFile()) {   
              String fileName = file.getName();   
              if (fileName.indexOf("_") < 0) {   
                  continue;   
              }   
              String[] filenames = fileName.split("_");   
              String filename1 = filenames[0]+"_"+filenames[1];   
              String filename2 = filenames[2].substring(0,filenames[2].lastIndexOf("."));   
              result = filename1 + "," + filename2 + ",file:/" + path + "\\" + fileName + ",4,false";   
              System.out.println(result);   
          }   
    
      }   
    
    } public List getFileList(String path) {
      path = getFormatPath(path);   
      path = path + "/";   
      File filePath = new File(path);   
      if (!filePath.isDirectory()) {   
          return null;   
      }   
      String[] filelist = filePath.list();   
      List filelistFilter = new ArrayList();   
    
      for (int i = 0; i < filelist.length; i++) {   
          String tempfilename = getFormatPath(path + filelist[i]);   
          filelistFilter.add(tempfilename);   
      }   
      return filelistFilter;   
    
    } public String getString(Object object) {
      if (object == null) {   
          return "";   
      }   
      return String.valueOf(object);   
    
    } public String getFormatPath(String path) {
      path = path.replaceAll("\\\\", "/");   
      path = path.replaceAll("//", "/");   
      return path;   
    
    } public static void main(String[] args) {
      new CreatePluginsConfig("D:\\MyEclipse\\Common\\plugins").print();
    
    }
    }

这是明显的数组下标越界了,一般是因为要方位数组中没有的数据导致的,建议检查一下数组的参数。