@RequestMapping(value="/find/host.do")
//최초 호출 메소드
public String hostMethod(HttpServletRequest request, Model model){
subDirList(경로);
return "find.host";
}
// 최초경로에 있는 디렉토리에 있는 파일을 읽어 해당 각 파일별 문자열중복이 있는지 체크
public void subDirList(String source){
File dir = new File(source);
File[] fileList = dir.listFiles();
try{
for(int i = 0 ; i < fileList.length ; i++){
File file = fileList[i];
if(file.isFile()){
// 파일이 있다면 파일 이름 출력
System.out.println("\t 파일 이름 = " + file.getName()+" /t 파일 전체경로 = "+file.getPath());
overlapChk("id=",file.getPath()," /t 파일 전체경로 = "+file.getPath(),"디렉토리 이름 = " + file.getName());
}else if(file.isDirectory()){
System.out.println("디렉토리 이름 = " + file.getName());
// 서브디렉토리가 존재하면 재귀적 방법으로 다시 탐색
subDirList(file.getCanonicalPath().toString());
}
}
}catch(IOException e){
}
}
페이지별 아이디 중복체크(정규식으로 아이디 말고도 다른거찾을수도)
public void overlapChk(String ovStr,String fileNm,String allPath, String directNm){
System.out.println("오버랩 시작 ");
String[] search = new String[2];
TreeSet<String> overlapList = new TreeSet<String>();
search[0] = ovStr; // 'GV_' 단어를 가지고 있는 모든 열을 검색한다.
search[1] =fileNm; // 검색할 *.txt 파일의 파일명(확장자까지 같이 적어줘야 한다.)
// (?i) <- "찾을 문자열"에 대소문자 구분을 없애고
// .* <- 문자열이 행의 어디에 있든지 찾을 수 있게
String findStr = "(?i).*" + search[0] + ".*";
// int lineNumber = 1; // 행 번호
try {
BufferedReader buffer = new BufferedReader(new FileReader(search[1]));
String low = null;
String regexStr =".*(id=\")[a-zA-Z_-]+(\").*";
List<String> overlist = new ArrayList<String>();
while ((low = buffer.readLine()) != null) {
File f = new File("C:\\Users\\king\\Desktop\\regext.txt");
FileWriter fw =new FileWriter(f,true);
// System.out.println("readline "+low +" 매칭결과" + low.matches(regexStr));
if(low.matches(regexStr)){
Pattern pt = Pattern.compile(" (id)=\"[a-zA-Z-_]+\"");
Matcher mt = pt.matcher(low);
while(mt.find()){
if(!overlist.contains(mt.group())){
if(mt.group().replace(" ","").equals("id=\"whspg\""))
System.out.println("중복안됨 "+ mt.group()+ " " +overlist.contains(mt.group())+ " "+overlist.toString());
fw.write("중복안됨 "+ mt.group()+ " "+allPath+" "+directNm+"\n");
overlist.add(mt.group());
}else{
System.out.println("아이디 중복 "+ mt.group());
fw.write("아이디 중복 "+ mt.group()+ " "+allPath+" "+directNm +"\n");
}
}
}
fw.write("\n");
fw.flush();
fw.close();
}
} catch (IOException e) {
System.err.println(e); // 에러가 있다면 메시지 출력
System.exit(1);
} catch (PatternSyntaxException e) { // 정규식에 에러가 있다면
System.err.println(e);
System.exit(1);
}
}
'JAVA > 자바' 카테고리의 다른 글
JAVA poi 엑셀 파일쓰기 (0) | 2019.01.06 |
---|---|
자바 JSON스트링 리스트로 변환 (0) | 2016.12.08 |
자바 웹 다운로드 (0) | 2016.10.20 |
자바 bufferedimage to byte[] convert (0) | 2016.10.19 |
자바 현재날짜뽑기 (0) | 2016.10.14 |