📄 opendirectory.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 + -