从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变

Posted monroyhahaha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变相关的知识,希望对你有一定的参考价值。

公司最近有一个从ftp批量下载文件的需求,但是文件名重复总会报错

没办法,自己下班后写了一个小算法

 

仿照桶排序的原理,实现了这个小功能,直接上代码:

  1. String[] test = {"hahaha.txt","wekje.doc","学习.pdf","wekje.doc","学习.pdf",  
  2.                 "hahaha.txt","学习.pdf","wekje.doc","ewheuhiq.jpg","学习.pdf","Du2Cm_I0Z1x081534·386137_10s.mp4","Du2Cm_I0Z1x081534·386137_10s.mp4"};  
  3.                   
  4.         String[] strlist = new String[1];  
  5.         int [] times = new int[1];  
  6.         times[0] = 1;  
  7.         System.out.println("整理前的文件名数组"+Arrays.toString(test));  
  8.         for(int i=0;i<test.length;i++){  
  9.             int target = 0;  
  10.             if(i==0){  
  11.                 strlist[i] = test[i];  
  12.             }else{  
  13.                 boolean flag = false;  
  14.                 for(int j=0;j<times.length;j++){  
  15.                     if(test[i].equals(strlist[j])){  
  16.                         flag = true;  
  17.                         target = j;  
  18.                         break;  
  19.                     }else{  
  20.                         continue;  
  21.                     }  
  22.                 }  
  23.                 if(flag){  
  24.                     String[] spi = test[i].split("\.");  
  25.                     StringBuilder sb = new StringBuilder(spi[0]);  
  26.                     sb.append("(").append(times[target]+"").append(")")  
  27.                     .append(".").append(spi[1]);  
  28.                     test[i] = sb.toString();  
  29.                     times[target] += 1;  
  30.                 }else{  
  31.                     strlist = Arrays.copyOf(strlist, strlist.length+1);  
  32.                     times = Arrays.copyOf(times, times.length+1);  
  33.                     strlist[strlist.length-1] = test[i];  
  34.                     times[times.length-1] = 1;  
  35.                 }  
  36.             }  
  37.         }  
  38.   
  39.         System.out.println("处理后的文件名数组"+Arrays.toString(test));  

以上是关于从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变的主要内容,如果未能解决你的问题,请参考以下文章

从FTP下载时如何检查文件是不是存在

在包含空格的批处理文件中使用 WinSCP 时,如何从 FTP 下载中排除子文件夹?

从FTP服务器下载文件并将其保存在本地文件中。

PHP 从FTP服务器下载文件并将其保存在本地文件中。

linux FTP批量上传下载文件

java如何实现将FTP文件转移到另一个FTP服务器上