@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
블로그 이미지

왕왕왕왕

,