private void ftpDownload()
{
FTPClient ftpClient =
null
;
InputStream input =
null
;
boolean loginFlag =
false
;
List<String> list =
new
ArrayList<String>();
try
{
int defaultPort = CommonsMessage.FTP_DEFAULT_PORT;
int timeout = M400Constant.NUM_SIXTY_THOUSAND * M400Constant.NUM_TWO;
ftpClient =
new
FTPClient();
ftpClient.setDefaultPort(defaultPort);
ftpClient.setConnectTimeout(timeout);
ftpClient.setDefaultTimeout(timeout);
ftpClient.setDataTimeout(timeout);
ftpClient.setControlEncoding(
"UTF-8"
);
FTPClientConfig conf =
new
FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode(
"en"
);
conf.setDefaultDateFormatStr(
"MMM dd HH:mm"
);
ftpClient.configure(conf);
ftpClient.connect(SystemConfig.getKey(
"scpFtpIp"
));
loginFlag = ftpClient.login(SystemConfig.getKey(
"scpFtpUserName"
).trim(),
SystemConfig.getKey(
"scpFtpPassword"
).trim());
String ftpDir = SystemConfig.getKey(
"ftpHangupDir"
).trim();
if
(!loginFlag)
{
DEBUGGER.debug(
"login scp ftp is :"
+ loginFlag);
}
if
(ftpClient.changeWorkingDirectory(ftpDir))
{
FTPFile file[] = ftpClient.listFiles(ftpDir);
if
(file !=
null
&& file.length > 0)
{
DEBUGGER.debug(
"hungup file size is: "
+ file.length);
for
(int i = 0; i < file.length; i++)
{
String fileName = file[i].getName();
ftpClient.setBufferSize(CommonsMessage.ONE_K_BUFFER_SIZE);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
input = ftpClient.retrieveFileStream(fileName);
processInput(ftpClient, input, list, fileName);
}
}
else
{
try
{
Thread.sleep(M400Constant.NUM_FIVE_THOUSAND);
}
catch
(InterruptedException e)
{
error(
"Failed to queryScpToQuery"
, e);
}
}
}
else
{
DEBUGGER.debug(
"scp dir is error "
);
}
}
catch
(Exception e)
{
error(
"dowonload file is faild "
, e);
}
finally
{
close(input,
"close inputStream is faild "
);
if
(ftpClient !=
null
)
{
try
{
deleteFile(ftpClient, list);
boolean logoutFlag =
false
;
try
{
logoutFlag = ftpClient.logout();
}
catch
(Exception e)
{
error(
"logout : "
+ logoutFlag, e);
}
ftpClient =
null
;
}
catch
(Exception e)
{
error(
"Failed to ftpDownload"
, e);
}
}
}
}
private void processInput(FTPClient ftpClient, InputStream input, List<String> list, String fileName)
{
if
(input ==
null
)
{
return
;
}
callingService(input);
try
{
input.close();
ftpClient.completePendingCommand();
list.add(fileName);
}
catch
(Exception e)
{
error(
"Failed to ftpDownload"
, e);
}
}
}