You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
499 lines
20 KiB
499 lines
20 KiB
2 years ago
|
package com.example.upsecuritydata.service.impl;
|
||
|
|
||
|
import cn.hutool.core.collection.CollUtil;
|
||
|
import cn.hutool.core.date.DateUtil;
|
||
|
import com.alibaba.fastjson.JSON;
|
||
|
import com.alibaba.fastjson.JSONObject;
|
||
|
import com.example.upsecuritydata.cache.CodeCache;
|
||
|
import com.example.upsecuritydata.entity.NbmsEnprefix;
|
||
|
import com.example.upsecuritydata.entity.NbmsEntApply;
|
||
|
import com.example.upsecuritydata.service.Method;
|
||
|
import com.example.upsecuritydata.service.NbmsEnprefixService;
|
||
|
import com.example.upsecuritydata.service.NbmsEntApplyServcie;
|
||
|
import com.example.upsecuritydata.util.Constant;
|
||
|
import com.example.upsecuritydata.util.Encrypt;
|
||
|
import com.example.upsecuritydata.util.JschUtil;
|
||
|
import com.jcraft.jsch.*;
|
||
|
import com.xxl.job.core.context.XxlJobHelper;
|
||
|
import lombok.AllArgsConstructor;
|
||
|
import org.springframework.stereotype.Service;
|
||
|
|
||
|
import java.io.*;
|
||
|
import java.util.*;
|
||
|
import java.util.zip.GZIPInputStream;
|
||
|
|
||
|
/**
|
||
|
* @author laifeng
|
||
|
* @since 2022/11/27
|
||
|
*/
|
||
|
@Service
|
||
|
@AllArgsConstructor
|
||
|
public class MethodImpl implements Method {
|
||
|
private final NbmsEntApplyServcie nbmsEntApplyServcie;
|
||
|
|
||
|
private final NbmsEnprefixService enprefixService;
|
||
|
|
||
|
@Override
|
||
|
public void upMethod(String readFile, String upSrc, String tableName, String operationName) throws Exception {
|
||
|
|
||
|
|
||
|
File file = new File(readFile);
|
||
|
BufferedReader br = new BufferedReader(new InputStreamReader(
|
||
|
new FileInputStream(file)));
|
||
|
StringBuilder sb = new StringBuilder();
|
||
|
String line = null;
|
||
|
while ((line = br.readLine()) != null) {
|
||
|
sb.append(line).append("\n");
|
||
|
}
|
||
|
br.close();
|
||
|
// 将字符串压缩成zip文件并获得字节数据
|
||
|
byte[] bytes = Encrypt.zipToBytes(Constant.zipPath, sb.toString());
|
||
|
// upload是压缩加密后的内容
|
||
|
byte[] upload = Encrypt.encryptAlgorithm("1", bytes, "1234567890abcDEF",
|
||
|
"1234567890abcDEF");
|
||
|
|
||
|
// 生成文件名
|
||
|
String dateStr = Long.toString(System.currentTimeMillis()); // 生成13位时间戳
|
||
|
String fileName = tableName + dateStr + operationName;
|
||
|
String src = Constant.localPackage + fileName;
|
||
|
// 写入文件
|
||
|
FileOutputStream stream = new FileOutputStream(src);
|
||
|
stream.write(upload);
|
||
|
XxlJobHelper.log("写入成功:" + fileName);
|
||
|
// 关闭输出流
|
||
|
stream.close();
|
||
|
|
||
|
// 远程连接服务器
|
||
|
// SSHRemoteCall.getInstance().sshRemoteCallLogin(Constant.ipAddress, Constant.userName, Constant.password);
|
||
|
JschUtil jschUtil = new JschUtil(Constant.ipAddress, 22102, Constant.userName, Constant.password);
|
||
|
jschUtil.connect();
|
||
|
|
||
|
// 确保目录一定存在
|
||
|
// SSHRemoteCall.getInstance().directory(upSrc);
|
||
|
jschUtil.directory(upSrc);
|
||
|
// 上传文件到指定目录
|
||
|
// SSHRemoteCall.getInstance().uploadFile("/data1/qingniao/" + upSrc + "/" + fileName, src);
|
||
|
// TODO: 2023/3/1 上传路径这里需要改
|
||
|
jschUtil.upload("/data1/zhilianxintong/" + upSrc + "/" + fileName, src);
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 生成三、 标识解析企业主体信息上报文件
|
||
|
*
|
||
|
* @param type 0 代表注册 1 代表修改
|
||
|
* @return
|
||
|
*/
|
||
|
@Override
|
||
|
public Boolean creatIdentificationUpFile(Integer type, String yyyyMMdd, String yyyyMMddToday) throws IOException {
|
||
|
String companyCode; //标识码企业前缀
|
||
|
String companyName; // 标识解析节点经营主体名称
|
||
|
String level; // 标识解析系统级别
|
||
|
String accessProvince; // 接入省份
|
||
|
String accessCity; // 接入地市
|
||
|
String registerTime; // 注册时间
|
||
|
String categoryA; // 经营主体行业门类
|
||
|
String categoryB; // 经营主体行业大类
|
||
|
String companyType; // 公司性质
|
||
|
String serviceProfession; //节点服务行业
|
||
|
|
||
|
List<NbmsEntApply> list = null;
|
||
|
// 新增操作
|
||
|
if (type == 0) {
|
||
|
list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 1)
|
||
|
.eq(NbmsEntApply::getApplyStep, 4)
|
||
|
.ge(NbmsEntApply::getUpdateDate, yyyyMMdd)
|
||
|
.lt(NbmsEntApply::getUpdateDate, yyyyMMddToday)
|
||
|
.list();
|
||
|
}
|
||
|
// 修改操作
|
||
|
if (type == 1) {
|
||
|
list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 3)
|
||
|
.eq(NbmsEntApply::getApplyStep, 4)
|
||
|
.ge(NbmsEntApply::getUpdateDate, yyyyMMdd)
|
||
|
.lt(NbmsEntApply::getUpdateDate, yyyyMMddToday)
|
||
|
.list();
|
||
|
}
|
||
|
// 创建输出流
|
||
|
FileOutputStream stream = new FileOutputStream(Constant.localNotEncryFileNamePath);
|
||
|
if (CollUtil.isNotEmpty(list)) {
|
||
|
for (NbmsEntApply nbmsEnapply : list) {
|
||
|
companyCode = nbmsEnapply.getEntPrefix();
|
||
|
companyName = nbmsEnapply.getOrgName();
|
||
|
level = "4";
|
||
|
accessProvince = nbmsEnapply.getOrgAddrProvince();
|
||
|
accessProvince = CodeCache.codeMap.get(accessProvince);
|
||
|
|
||
|
accessCity = nbmsEnapply.getOrgAddrCity();
|
||
|
accessCity = CodeCache.codeMap.get(accessCity);
|
||
|
|
||
|
registerTime = DateUtil.format(nbmsEnapply.getUpdateDate(), "yyyy-MM-dd HH:mm:ss");
|
||
|
|
||
|
categoryA = nbmsEnapply.getIndustrySpecific();
|
||
|
categoryA = CodeCache.codeMap.get(categoryA);
|
||
|
|
||
|
categoryB = nbmsEnapply.getIndustryCategory();
|
||
|
categoryB = CodeCache.codeMap.get(categoryB);
|
||
|
|
||
|
companyType = judge(nbmsEnapply.getOrgNature());
|
||
|
serviceProfession = categoryB;
|
||
|
|
||
|
String template = companyCode + "|" + companyName + "|" + level + "|" + accessProvince + "|" + accessCity + "|" + registerTime + "|" + categoryA + "|" + categoryB + "|" + companyType + "|" + serviceProfession + "\n";
|
||
|
byte[] bytes = template.getBytes();
|
||
|
stream.write(bytes);
|
||
|
}
|
||
|
stream.flush();
|
||
|
stream.close();
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 四、 标识解析企业主体信息上报
|
||
|
*
|
||
|
* @param type 0 代表注册 1 代表修改
|
||
|
*/
|
||
|
@Override
|
||
|
public Boolean creatForUpFile(Integer type, String yyyyMMdd, String yyyyMMddToday) throws IOException {
|
||
|
String companyName; // 标识解析节点经营主体名称
|
||
|
String startIP = "223.99.228.240";
|
||
|
String endIP = "223.99.228.240";
|
||
|
String position = "中国山东省济南市自由贸易试验区济南片区颖秀路2299号";
|
||
|
List<NbmsEnprefix> list = null;
|
||
|
if (type == 0) {
|
||
|
list = enprefixService.query()
|
||
|
.select("DISTINCT(ent_name)")
|
||
|
.eq("proxy_state", 4)
|
||
|
.ge("update_date", yyyyMMdd)
|
||
|
.lt("update_date", yyyyMMddToday)
|
||
|
.list();
|
||
|
}
|
||
|
if (CollUtil.isEmpty(list)) {
|
||
|
return false;
|
||
|
}
|
||
|
// 创建输出流
|
||
|
FileOutputStream stream = new FileOutputStream(Constant.localNotEncryFileNamePath);
|
||
|
for (NbmsEnprefix enprefix : list) {
|
||
|
companyName = enprefix.getEntName();
|
||
|
String template = companyName + "|" + startIP + "|" + endIP + "|" + position + "\n";
|
||
|
byte[] bytes = template.getBytes();
|
||
|
stream.write(bytes);
|
||
|
}
|
||
|
stream.flush();
|
||
|
stream.close();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 五、 标识注册企业主体信息上报
|
||
|
*
|
||
|
* @param type
|
||
|
* @param yyyyMMdd
|
||
|
* @param yyyyMMddToday
|
||
|
* @return
|
||
|
*/
|
||
|
@Override
|
||
|
public Boolean creatFiveUpFile(Integer type, String yyyyMMdd, String yyyyMMddToday) throws IOException {
|
||
|
String companyCode; //标识码企业前缀
|
||
|
String companyName; // 标识解析节点经营主体名称
|
||
|
String level; // 标识解析系统级别
|
||
|
String accessProvince; // 接入省份
|
||
|
String accessCity; // 接入地市
|
||
|
String registerTime; // 注册时间
|
||
|
String categoryA; // 经营主体行业门类
|
||
|
String categoryB; // 经营主体行业大类
|
||
|
String companyType; // 公司性质
|
||
|
String serviceProfession; //节点服务行业
|
||
|
|
||
|
List<NbmsEntApply> list = null;
|
||
|
// 新增操作
|
||
|
if (type == 0) {
|
||
|
list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 1)
|
||
|
.eq(NbmsEntApply::getApplyStep, 4)
|
||
|
.ge(NbmsEntApply::getUpdateDate, yyyyMMdd)
|
||
|
.lt(NbmsEntApply::getUpdateDate, yyyyMMddToday)
|
||
|
.list();
|
||
|
}
|
||
|
// 修改操作
|
||
|
if (type == 1) {
|
||
|
list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 2)
|
||
|
.eq(NbmsEntApply::getApplyType, 3)
|
||
|
.eq(NbmsEntApply::getApplyStep, 4)
|
||
|
.ge(NbmsEntApply::getUpdateDate, yyyyMMdd)
|
||
|
.lt(NbmsEntApply::getUpdateDate, yyyyMMddToday)
|
||
|
.list();
|
||
|
}
|
||
|
// 创建输出流
|
||
|
FileOutputStream stream = new FileOutputStream(Constant.localNotEncryFileNamePath);
|
||
|
if (CollUtil.isNotEmpty(list)) {
|
||
|
for (NbmsEntApply nbmsEnapply : list) {
|
||
|
companyCode = nbmsEnapply.getEntPrefix();
|
||
|
companyName = nbmsEnapply.getOrgName();
|
||
|
// level = "4";
|
||
|
accessProvince = nbmsEnapply.getOrgAddrProvince();
|
||
|
accessProvince = CodeCache.codeMap.get(accessProvince);
|
||
|
|
||
|
accessCity = nbmsEnapply.getOrgAddrCity();
|
||
|
accessCity = CodeCache.codeMap.get(accessCity);
|
||
|
|
||
|
registerTime = DateUtil.format(nbmsEnapply.getUpdateDate(), "yyyy-MM-dd HH:mm:ss");
|
||
|
|
||
|
categoryA = nbmsEnapply.getIndustrySpecific();
|
||
|
categoryA = CodeCache.codeMap.get(categoryA);
|
||
|
|
||
|
categoryB = nbmsEnapply.getIndustryCategory();
|
||
|
categoryB = CodeCache.codeMap.get(categoryB);
|
||
|
|
||
|
companyType = judge(nbmsEnapply.getOrgNature());
|
||
|
serviceProfession = categoryB;
|
||
|
|
||
|
String template = companyCode + "|" + companyName + "|" + "|" + accessProvince + "|" + accessCity + "|" + registerTime + "|" + categoryA + "|" + categoryB + "|" + companyType + "|" + serviceProfession + "\n";
|
||
|
byte[] bytes = template.getBytes();
|
||
|
stream.write(bytes);
|
||
|
}
|
||
|
stream.flush();
|
||
|
stream.close();
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void creatSixUpFileAndUp(String yesterday) throws Exception {
|
||
|
JSch jsch = new JSch();
|
||
|
Session session = jsch.getSession(Constant.user, Constant.host, 22);
|
||
|
session.setPassword(Constant.password1);
|
||
|
session.setConfig("StrictHostKeyChecking", "no");
|
||
|
session.connect(2000000);
|
||
|
|
||
|
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
|
||
|
sftp.connect(2000000);
|
||
|
|
||
|
// 连接远程服务器,日志存放地
|
||
|
String yesterdayStr = DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd");
|
||
|
String directoryPath = Constant.sixRemoteLogPackage + yesterdayStr;
|
||
|
List<String> allFile = listFiles(directoryPath, sftp);
|
||
|
|
||
|
if (CollUtil.isEmpty(allFile)) {
|
||
|
// System.out.println("表4:昨日无日志文件夹!");
|
||
|
XxlJobHelper.log("表4:昨日无日志文件夹!");
|
||
|
return;
|
||
|
}
|
||
|
for (String filePath : allFile) {
|
||
|
// 读取远程服务器上的日志文件 gz压缩格式
|
||
|
GZIPInputStream gzipInputStream = new GZIPInputStream(sftp.get(directoryPath + "/" + filePath));
|
||
|
Reader decoder = new InputStreamReader(gzipInputStream, "UTF-8");
|
||
|
BufferedReader reader = new BufferedReader(decoder);
|
||
|
// 创建输出流
|
||
|
FileOutputStream outputStream = new FileOutputStream(Constant.localNotEncryFileNamePath);
|
||
|
String tempString;
|
||
|
//一次读一行,读入null时文件结束
|
||
|
while ((tempString = reader.readLine()) != null) {
|
||
|
// 获得请求时间
|
||
|
JSONObject jsonObject = JSON.parseObject(tempString);
|
||
|
String operatorTime = jsonObject.getString("operatorTime");
|
||
|
Date date1 = DateUtil.parse(operatorTime, "yyyyMMddHHmmss");
|
||
|
String requestTime = DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss");
|
||
|
// 获得响应时间
|
||
|
String responseTime = requestTime;
|
||
|
// 获得源IP
|
||
|
String sourceIP = jsonObject.getString("userIp");
|
||
|
// 端口
|
||
|
String port = "80";
|
||
|
// 获得目的IP
|
||
|
String destinationIP = jsonObject.getString("idisIp");
|
||
|
// 方法
|
||
|
String method = "HTTPM_GET";
|
||
|
// 企业标识码
|
||
|
String companyCode = jsonObject.getString("prefix");
|
||
|
// 标识编码
|
||
|
String ideCode = jsonObject.getString("handleName");
|
||
|
//
|
||
|
|
||
|
// 组装字符串
|
||
|
tempString = requestTime + "|" + responseTime + "|" + sourceIP + "|" + port + "|" + destinationIP + "|" + port + "|" + method + "|" + companyCode + "|" + ideCode + "|" + "|" + "|" + "|" + "http://code.qnaiot.com" + "|" + "http://code.qnaiot.com" + "|" + "\n";
|
||
|
|
||
|
byte[] bytes = tempString.getBytes();
|
||
|
outputStream.write(bytes);
|
||
|
|
||
|
}
|
||
|
outputStream.flush();
|
||
|
outputStream.close();
|
||
|
decoder.close();
|
||
|
gzipInputStream.close();
|
||
|
// 上传
|
||
|
String fileName = Constant.localNotEncryFileNamePath;
|
||
|
// 要上传的目录
|
||
|
String upSrc = "/004/" + yesterday;
|
||
|
// 表名(文件名的一部分)
|
||
|
String tableName = "ZLXT-basic_registered_log-";
|
||
|
String operationName = ".bin";
|
||
|
this.upMethod(fileName, upSrc, tableName, operationName);
|
||
|
}
|
||
|
sftp.disconnect();
|
||
|
// session.disconnect();
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void creatSevenUpFileAndUp(String yesterday) throws Exception {
|
||
|
JSch jsch = new JSch();
|
||
|
Session session = jsch.getSession(Constant.user, Constant.host, 22);
|
||
|
session.setPassword(Constant.password1);
|
||
|
session.setConfig("StrictHostKeyChecking", "no");
|
||
|
session.connect(200000);
|
||
|
|
||
|
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
|
||
|
sftp.connect(200000);
|
||
|
|
||
|
// 连接远程服务器,日志存放地
|
||
|
String yesterdayStr = DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd");
|
||
|
String directoryPath = Constant.sixRemoteLogPackage + yesterdayStr;
|
||
|
List<String> allFile = listFiles(directoryPath, sftp);
|
||
|
|
||
|
if (CollUtil.isEmpty(allFile)) {
|
||
|
XxlJobHelper.log("表4:昨日无日志文件夹!");
|
||
|
return;
|
||
|
}
|
||
|
for (String filePath : allFile) {
|
||
|
// 读取远程服务器上的日志文件 gz压缩格式
|
||
|
GZIPInputStream gzipInputStream = new GZIPInputStream(sftp.get(directoryPath + "/" + filePath));
|
||
|
Reader decoder = new InputStreamReader(gzipInputStream, "UTF-8");
|
||
|
BufferedReader reader = new BufferedReader(decoder);
|
||
|
// 创建输出流
|
||
|
FileOutputStream outputStream = new FileOutputStream(Constant.localNotEncryFileNamePath);
|
||
|
String tempString;
|
||
|
//一次读一行,读入null时文件结束
|
||
|
while ((tempString = reader.readLine()) != null) {
|
||
|
// 获得请求时间
|
||
|
JSONObject jsonObject = JSON.parseObject(tempString);
|
||
|
String operatorTime = jsonObject.getString("operatorTime");
|
||
|
Date date1 = DateUtil.parse(operatorTime, "yyyyMMddHHmmss");
|
||
|
String requestTime = DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss");
|
||
|
// 获得响应时间
|
||
|
String responseTime = requestTime;
|
||
|
// 获得源IP
|
||
|
String sourceIP = jsonObject.getString("userIp");
|
||
|
// 端口
|
||
|
String port = "80";
|
||
|
// 获得目的IP
|
||
|
String destinationIP = jsonObject.getString("idisIp");
|
||
|
// 方法
|
||
|
String method = "HTTPM_GET";
|
||
|
// 企业标识码
|
||
|
String companyCode = jsonObject.getString("prefix");
|
||
|
// 标识编码
|
||
|
String ideCode = jsonObject.getString("handleName");
|
||
|
//
|
||
|
|
||
|
// 组装字符串
|
||
|
tempString = requestTime + "|" + responseTime + "|" + sourceIP + "|" + port + "|" + destinationIP + "|" + port + "|" + method + "|" + companyCode + "|" + ideCode + "|" + "|" + "|" + "|" + "http://code.qnaiot.com" + "|" + "http://code.qnaiot.com" + "|" + "\n";
|
||
|
|
||
|
byte[] bytes = tempString.getBytes();
|
||
|
outputStream.write(bytes);
|
||
|
|
||
|
}
|
||
|
outputStream.flush();
|
||
|
outputStream.close();
|
||
|
decoder.close();
|
||
|
gzipInputStream.close();
|
||
|
// 上传
|
||
|
String fileName = Constant.localNotEncryFileNamePath;
|
||
|
// 要上传的目录
|
||
|
String upSrc = "/005/" + yesterday;
|
||
|
// 表名(文件名的一部分)
|
||
|
String tableName = "ZLXT-basic_identification_log-";
|
||
|
String operationName = ".bin";
|
||
|
this.upMethod(fileName, upSrc, tableName, operationName);
|
||
|
}
|
||
|
sftp.disconnect();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void deletUpFile(String localPackage) {
|
||
|
File directory = new File(localPackage);
|
||
|
for (File file : Objects.requireNonNull(directory.listFiles())) {
|
||
|
if (!file.isDirectory()) {
|
||
|
file.delete();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
// private void deleteFile(String src) {
|
||
|
//
|
||
|
// System.out.println(src);
|
||
|
// File file = new File( src);
|
||
|
// boolean delete = file.delete();
|
||
|
// System.out.println(delete);
|
||
|
// }
|
||
|
|
||
|
private String judge(int companyType) {
|
||
|
//单位性质,国有控股、民营控股、外商控股、事业单位、民营非盈利
|
||
|
if (companyType == 1) {
|
||
|
return "国有控股";
|
||
|
}
|
||
|
if (companyType == 2) {
|
||
|
return "民营控股";
|
||
|
}
|
||
|
if (companyType == 3) {
|
||
|
return "外商控股";
|
||
|
}
|
||
|
if (companyType == 4) {
|
||
|
return "事业单位";
|
||
|
}
|
||
|
if (companyType == 5) {
|
||
|
return "民营非盈利";
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 列出目录下的文件
|
||
|
*
|
||
|
* @param directory 要列出的目录
|
||
|
* @return
|
||
|
* @throws SftpException
|
||
|
* @throws JSchException
|
||
|
*/
|
||
|
private List<String> listFiles(String directory, ChannelSftp channelSftp) {
|
||
|
// 显示目录信息
|
||
|
Vector ls = null;
|
||
|
try {
|
||
|
ls = channelSftp.ls(directory);
|
||
|
} catch (SftpException e) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
|
||
|
Iterator iterator = ls.iterator();
|
||
|
|
||
|
try {
|
||
|
ArrayList<String> list = new ArrayList<>();
|
||
|
while (iterator.hasNext()) {
|
||
|
ChannelSftp.LsEntry file = (ChannelSftp.LsEntry) iterator.next();
|
||
|
//文件名称
|
||
|
String fileName = file.getFilename();
|
||
|
//移除上级目录和根目录:"." ".."
|
||
|
if (".".equals(fileName) || "..".equals(fileName)) {
|
||
|
continue;
|
||
|
}
|
||
|
list.add(fileName);
|
||
|
}
|
||
|
return list;
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
}
|