⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opendirectory.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package net.aetherial.gis.output.toLd;

import java.util.Vector;
import java.io.File;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class OpenDirectory {
  private String gradeStr = "国道|省道|县道|乡道|";
  public OpenDirectory() {
  }

  /**
   * 设置GradeStr的字符串
   */
  public void setGradeStr(String gradeStr) {
    this.gradeStr = gradeStr;
  }

  public File[] getOpenFile(String inputPath) {
    Vector allFiles = this.findOutGPSFiles(inputPath);
    File[] temp = null;
    if (allFiles.size() != 0) {
      temp = new File[allFiles.size()];
      for (int i = 0; i < temp.length; i++) {
        temp[i] = (File) allFiles.get(i);
      }
    }else{
      System.out.println("allFiles.size() == 0");
    }
    return temp;
  }
  
  //获取所有TXT文件
  public File[] getOpenTxtFile(String inputPath) {
	    Vector allFiles = this.findOutTXTFiles(inputPath);
	    File[] temp = null;
	    if (allFiles.size() != 0) {
	      temp = new File[allFiles.size()];
	      for (int i = 0; i < temp.length; i++) {
	        temp[i] = (File) allFiles.get(i);
	      }
	    }else{
	      System.out.println("allFiles.size() == 0");
	    }
	    return temp;
	  }
	  

  public File[] get_GradeMore_NumberLess_File(File currentFile) {
    Vector gradeMore = this.get_GradeMore_File(currentFile);
    Vector numberLess = this.get_NumberLess_File(currentFile);
    File[] temp = null;
    if ((gradeMore.size() != 0)||(numberLess.size() != 0)) {
      temp = new File[gradeMore.size() + numberLess.size()];
      for (int i = 0; i < gradeMore.size(); i++) {
        temp[i] = (File) gradeMore.get(i);
      }
      for (int i = 0; i < numberLess.size(); i++) {
        temp[i + gradeMore.size()] = (File) numberLess.get(i);
      }
    }
    return temp;

  }

  private Vector get_GradeMore_File(File currentFile) {
    String fileName = currentFile.getName().toUpperCase();
    if (fileName.startsWith("S")) {
      this.gradeStr = "国道|";
    }
    else if (fileName.startsWith("X")) {
      this.gradeStr = "国道|省道|";
    }
    else if (fileName.startsWith("Y")) {
      this.gradeStr = "国道|省道|县道|";
    }
    else {
      this.gradeStr = "null";
    }
    return findOutGPSFiles(currentFile.getParentFile().getParentFile().getParent());
  }

  private Vector get_NumberLess_File(File currentFile) {
    Vector gpsFiles = new Vector();
    File[] all = currentFile.getParentFile().listFiles();
    int currentNumber = getNameNumber(currentFile.getName());
    if (all != null) {
      for (int i = 0; i < all.length; i++) {
        if (all[i].isFile()) {
          if (getNameNumber(all[i].getName()) < currentNumber) {
            gpsFiles.add(all[i]);
          }
        }
      }
    }
    return gpsFiles;
  }

  private int getNameNumber(String fileName){
    fileName = fileName.toUpperCase().trim().substring(1,fileName.length()).replaceAll(".GPS","");
    return Integer.parseInt(fileName);
  }

  private Vector findOutGPSFiles(String inputPath) {
    Vector gpsFiles = new Vector();
    //String gradeDir = "";
    File base = new File(inputPath);
    File[] all = base.listFiles();

    for (int i = 0; all != null && i < all.length; i++) {
      if (all[all.length - i -1].isDirectory()) {
//        System.out.println(all[i].getAbsolutePath());
        gpsFiles.addAll(findOutGPSFiles(all[i].getAbsolutePath()));
      }
    }
    File[] gps = base.listFiles(new java.io.FilenameFilter() {
      public boolean accept(File file, String name) {
        return
            file != null &&
            checkGradePath(file.getAbsolutePath(), gradeStr) &&
            name.length() > 4 &&
            ".gps".equalsIgnoreCase(name.substring(name.length() - 4));
      }
    });
    for (int i = 0; gps != null&& i < gps.length; i++) {
      if (gps[i] == null) {
        System.err.println("gps[" + i + "] == null");
      }
      gpsFiles.add(gps[i]);
    }
    return gpsFiles;
  }

  //只获取TXT文件
  private Vector findOutTXTFiles(String inputPath) {
	    Vector gpsFiles = new Vector();
	    //String gradeDir = "";
	    File base = new File(inputPath);
	    File[] all = base.listFiles();

	    for (int i = 0; all != null && i < all.length; i++) {
	      if (all[all.length - i -1].isDirectory()) {
//	        System.out.println(all[i].getAbsolutePath());
	        gpsFiles.addAll(findOutTXTFiles(all[i].getAbsolutePath()));
	        //System.err.println("====================OK!");
	      }
	    }
	    File[] gps = base.listFiles(new java.io.FilenameFilter() {
	      public boolean accept(File file, String name) {
	        return
	            file != null &&
	           // checkTxtPath(file.getAbsolutePath(), gradeStr) &&
	            name.length() > 4 &&
	            ".txt".equalsIgnoreCase(name.substring(name.length() - 4));
	      }
	    });
	    for (int i = 0; gps != null&& i < gps.length; i++) {
	      if (gps[i] == null) {
	        System.err.println("txt[" + i + "] == null");
	      }
	      gpsFiles.add(gps[i]);
	    }
	    return gpsFiles;
	  }

  //检查TXT文件目录
   private boolean checkTxtPath(String path, String gradeStr) {
	    boolean result = false;
	    if (gradeStr.indexOf("非") != -1) {
	      return false;
	    }
	    if (gradeStr.length() != 0) {
	      result |= path.indexOf("arry") > -1;
	    }
	    
	    return result;
	  }
  
  
  private boolean checkGradePath(String path, String gradeStr) {
    boolean result = false;
    if (gradeStr.indexOf("非") != -1) {
      return false;
    }
    if (gradeStr.length() == 0) {
      result = path.indexOf("整理完毕") > -1;
    }
    else {
      if (gradeStr.indexOf("国道") > -1) {
        result |= path.indexOf("整理完毕\\国") > -1;
      }
      if (gradeStr.indexOf("省道") > -1) {
        result |= path.indexOf("整理完毕\\省") > -1;
      }
      if (gradeStr.indexOf("县道") > -1) {
        result |= path.indexOf("整理完毕\\县") > -1;
      }
      if (gradeStr.indexOf("乡道") > -1) {
        result |= path.indexOf("整理完毕\\乡") > -1;
      }
      if (gradeStr.indexOf("村道") > -1) {
        result |= path.indexOf("整理完毕\\村") > -1 || path.indexOf("整理完毕\\乡村") > -1;
      }
      if (gradeStr.indexOf("专用道路") > -1) {
        result |= path.indexOf("整理完毕\\专") > -1;
      }
    }
    return result;
  }

  public static void main(String[] args) {
    OpenDirectory opendirectory = new OpenDirectory();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -