需求: java 根据数据库中存储的文件名批量修改本地文件的文件名的后缀名
之前用户将附件上传到minion服务器上,由于系统的原因,导致中间关系表中数据丢失,无法在界面显示和下附件,为了重新建立关系,需要将页面的附件正常显示并下载
实现方法和步骤:
1. 先将服务器上的附件全部下载到本地
2. 找到数据库中对应的存储附件的表,找到附件的中文名称表和在服务器上显示的表名
3. 使用java 代码实现对本地附件的名称修改,修改为对应的中文名称并且带有后缀名,具体代码如下:
//明确本地文件的路径
String filePath = "E:/work/word/IPaddress";
//1. 查询出数据库中的文件名和对应的地址
List<FileName> list = mapper.getFileInfo();
if (list != null && list.size()>0){
for (int i = 0; i < list.size(); i++) {
// 获取数据库中文件的在服务器上的存储路径
String path = list.get(i).getFilePath();
// 获取文件中文名称
String name = list.get(i).getFileName();
//截取 文件名 中文名称后面的后缀名
String nameFile = name.substring(name.lastIndexOf(".")+1);
log.info(sdf.format(new Date())+"=========截取后的文件后缀名==========="+nameFile);
//组装获取每个不同附件的具体路径
String pathFile = filePath+path;
log.info(sdf.format(new Date())+"=========截取后的文件路径==========="+pathFile);
File file = new File(pathFile);
if (!file.exists()) {
log.info("=============文件路径不存在=============");
}else {
// 由于从文件服务器上下载的文件的后缀名为.file , 所以在这里先将附件的后缀名去掉
//获取后缀名之前的路径名称
String files=pathFile.substring(0,pathFile.lastIndexOf("."));
//修改文件后缀名,也可以定定义新文件名
file.renameTo(new File(files+"."+nameFile));
}
}
}