//package com.eactive.eai.batch.eventscheduler.util;
//
//import java.io.File;
//
//import com.eactive.eai.batch.common.StringUtil;
//import com.eactive.eai.batch.eventscheduler.management.SchedulerEventVO;
//import com.eactive.eai.batch.eventscheduler.management.SchedulerKeys;
//import com.eactive.eai.common.exception.ExceptionUtil;
//import com.eactive.eai.common.property.PropManager;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.util.Properties;
//import java.util.HashMap;
//
//
//public class LocalFileUtil {
//
////	private String propFile = "";
//	private String propLocalDir = "";
//	private String delimiter ="";
//	private String searchFileName;
//	private String posActionType = "";
//	private String propArchiveDir = "";
//	
//	private HashMap<String, String[]> fileInfos;
//	
//	public LocalFileUtil(){
//		fileInfos = new HashMap<String, String[]>();
//	}
//	
//	static Logger logger = LoggerFactory.getLogger(ElinkLogger.LOGGER_SCHEDULER);
//	
//	public HashMap<String, String[]> searchFileInfo(SchedulerEventVO vo, String searchFile) throws Exception {
//        
//       
//        //Properties mapProp = vo.getEventPropMap();
//		
//		String propGroup = vo.getPropGroupName();
//		Properties mapProp = null;
//		
//		try{
//    		if(propGroup !=null && propGroup.length() > 0){
//    			PropManager pmanager = PropManager.getInstance();
//    			mapProp = pmanager.getPropGroupVO(propGroup).getProperties();    		
//    		}
//    		
//		}catch (Exception e){
//			e.printStackTrace();
//			logger.error("LocalFileUtil ] searchFileInfo - 프로퍼티 정보를 설정하는데 오류가 발생했습니다. - "+e.getMessage());
//		}
//		
//        searchFileName = searchFile; 
//        
//        //propFile = ((String)mapProp.get(SchedulerKeys.FILE_PATTERN)).trim();
//        propLocalDir =  ((String)mapProp.get(SchedulerKeys.LOCAL_DIR)).trim();
//        
//		delimiter = StringUtil.getDirDelimiter(propLocalDir);
//		
//		posActionType = (String)(mapProp.get(SchedulerKeys.POST_ACTION_TYPE)==null?SchedulerKeys.POST_ACTION_DELETE:mapProp.get(SchedulerKeys.POST_ACTION_TYPE));
//    	propArchiveDir = (String)mapProp.get(SchedulerKeys.ARCH_DIR);
//        
//        File f = new File(propLocalDir);
//        String fileName = "";
//        
//        if (f != null && f.exists()){
//	        File[] fileList = f.listFiles();
//	      
//	        
//	        if ((fileList != null) && (fileList.length != 0)) {
//	        	for (int i=0; i<fileList.length; i++) {
//	            	fileName = fileList[i].getName();                  
//	                if (fileName.length() > propLocalDir.length()) {
//	                	fileName = fileName.substring(propLocalDir.getBytes().length);
//	                }
//	                //첫번째 목록이 파일 타입인지 확인한다.
//	                if (fileList[i].isFile()){
//	                	String[] fileInfo = new String[2];
//	                	
//	                	if (searchFileName !=null && searchFileName.length()>0){
//	                		if (fileName.indexOf(searchFileName)>0){		//탐색하고자 하는 파일명(BJ01의 BjobTranDstcdName값 참조
//	                			fileInfo[0] = propLocalDir;
//	                			fileInfo[1] = fileName;
//	                			fileInfos.put(fileName, fileInfo);
//	                			
//	                			logger.debug("LocalFileUtil ] 탐색하고자 하는 파일이 생성되었습니다. - searchFileName ["+searchFileName+"] - localFileName ["+fileName+"]");
//	                			
//	                			postAction(fileList[i], fileName);
//	                			
//	                		}
//	                	}else {
//	                		fileInfo[0] = propLocalDir;
//	                		fileInfo[1] = fileName;
//	                		fileInfos.put(fileName, fileInfo);
//	                		
//	                		postAction(fileList[i], fileName);
//	                		
//	                		logger.debug("LocalFileUtil ] 파일이 생성되었습니다. - searchFileName ["+searchFileName+"] - localFileName ["+fileName+"]");
//	                	}
//	                	
//	                } else {
//	                	reDirectory(propLocalDir+delimiter+fileName);
//	                }
//	        	}
//	        }
//        }
//        return fileInfos;
//    }
//
//    private void reDirectory (String currentDir) throws Exception {                                                                                            
//        
//        try {                                                                                                                                       
//        	     
//            File rf = new File(currentDir);
//            if (rf != null){
//            	
//            	
//            
//				File[] subFile = rf.listFiles();
//
//	             String localFileName = "";
//	                                                                                                                                       
//	            if ((subFile != null) && (subFile.length != 0)) {                                                                                       
//	                for (int i=0; i<subFile.length; i++) {                                                                                              
//	                	localFileName = subFile[i].getName();                                                                                                                                    
//	                    if (localFileName.length() > currentDir.length()) {                                                                               
//	                    	localFileName = localFileName.substring(currentDir.getBytes().length);                                                       
//	                    }                                                                                                                               
//                                                                                                     
//	                    if(subFile[i].isDirectory()) {	//directory type이면
//	                    	reDirectory(currentDir+delimiter+localFileName);                                                                                                 
//	                    	                                                                                                                               
//	                    } else if(subFile[i].isFile()) {                                                                         
//	                    	String[] fileInfo = new String[2];
//	                    	
//	                    	
//	                    	if (searchFileName !=null && searchFileName.length()>0){
//	                    		if (localFileName.indexOf(searchFileName)>0){		//탐색하고자 하는 파일명(BJ01의 BjobTranDstcdName값 참조
//	                    			fileInfo[0] = currentDir;
//	                    			fileInfo[1] = localFileName;
//	                    			fileInfos.put(localFileName, fileInfo);
//	                    			
//	                    			logger.debug("LocalFileUtil ] 탐색하고자 하는 파일이 생성되었습니다. - searchFileName ["+searchFileName+"] - localFileName ["+localFileName+"]");
//	                    			
//	                    			postAction(subFile[i], localFileName);
//
//	                    		}
//	                    	}else {
//	                    		fileInfo[0] = currentDir;
//	                    		fileInfo[1] = localFileName;
//	                    		fileInfos.put(localFileName, fileInfo);
//	                    		
//	                    		postAction(subFile[i], localFileName);
//	                    		
//	                    		logger.debug("LocalFileUtil ]  파일이 생성되었습니다. - searchFileName ["+searchFileName+"] - localFileName ["+localFileName+"]");
//	                    	}
//	                    	
//	                    } 
//	                }
//	            }
//	            rf = null;
//	            subFile = null;
//            }
//        } catch (Exception f) {
//        	String arg[] = new String[1];
//        	arg[0] = currentDir;
//        	throw new Exception(ExceptionUtil.getErrorCode(f, "BECEAIMEU001",arg));
//        }
//    }
//    
//    private void postAction(File f, String fineName){
//    	if (SchedulerKeys.POST_ACTION_ARCH.equals(posActionType)){
//    		File af = new File(propArchiveDir);
//    		if (!af.exists()){
//    			if(!af.mkdir()){
//    				logger.error("LocalFileUtil ] searchFileInfo - Arch Directory 생성 실패");
//    			}
//    		}
//    		//File af2 = new File(af, fineName+"_" +CalendarUtil.getCurrentTimeNoDash());
//    		File af2 = new File(af, fineName);
//    		f.renameTo(af2);
//    	}else if (SchedulerKeys.POST_ACTION_DELETE.equals(posActionType)){ 
//    		f.delete();
//    	}
//    }
//}
