如何使用spring /创建文件备份?

时间:2018-07-30 10:29:13

标签: java spring-boot ftp spring-integration

使用Java和FTP,我通过在TimeStamp后面附加文件名来创建文件的备份,例如

File: a.html 
Backup: a_Date_Time.html

但是现在当我创建以前的备份的备份时,我得到了

File: a_Date_Time.html 
Backup: a_Date_Time_Date_Time.html

做到这一点的最佳方法是什么? 我也试图创建一个哈希表,其中原始文件为键,所有备份为FtpFileInfo类型列表

public HashMap<FtpFileInfo, List<FtpFileInfo>> viewFileMap(String directory) throws UnsupportedEncodingException {
    List<FtpFileInfo> file = gate.list("./" + URLDecoder.decode(directory, "UTF-8") + "/");
    fileMap = new HashMap<>();
    for (int i=0;i<file.size();i++){
        if(!file.get(i).isDirectory()){
            String name = file.get(i).getFilename().substring(0,file.get(i).getFilename().lastIndexOf("."));
            int length = name.length();
            fileList = new ArrayList<>();
           if(!name.matches("[\\w,\\s-]+_\\d{8}_\\d{6}")){
                for(int j=i+1;j<file.size();j++){
                    if(!file.get(j).isDirectory() && file.get(j).getFilename().substring(0,file.get(j).getFilename().lastIndexOf(".")).matches("[\\w,\\s-]+_\\d{8}_\\d{6}")){
                        String vocd = file.get(j).getFilename();
                        String fileName = vocd.substring(0, vocd.lastIndexOf("_"));
                        String finalFileName = fileName.substring(0, fileName.lastIndexOf("_"));
                        String ss = vocd.substring(vocd.substring(0, vocd.lastIndexOf("_")).lastIndexOf("_") + 1);
                        String timeStamp = ss.substring(0,ss.lastIndexOf("."));
                        if(name.equals(finalFileName) && isTimeStampValid(timeStamp)){
                            fileList.add(file.get(j));
                        }
                    }
                }
                fileMap.put(file.get(i),fileList);
            }
            else {
                continue;
            }
        }else {
            fileMap.put(file.get(i),null);
        }
    }
    return fileMap;
}

可以正常使用

  

a_Date_Time.html和a.html

类型的文件,但是当我创建备份的备份时,它不起作用,有没有办法创建这样的哈希图?

0 个答案:

没有答案