从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变
Posted monroyhahaha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变相关的知识,希望对你有一定的参考价值。
公司最近有一个从ftp批量下载文件的需求,但是文件名重复总会报错
没办法,自己下班后写了一个小算法
仿照桶排序的原理,实现了这个小功能,直接上代码:
- String[] test = {"hahaha.txt","wekje.doc","学习.pdf","wekje.doc","学习.pdf",
- "hahaha.txt","学习.pdf","wekje.doc","ewheuhiq.jpg","学习.pdf","Du2Cm_I0Z1x081534·386137_10s.mp4","Du2Cm_I0Z1x081534·386137_10s.mp4"};
- String[] strlist = new String[1];
- int [] times = new int[1];
- times[0] = 1;
- System.out.println("整理前的文件名数组"+Arrays.toString(test));
- for(int i=0;i<test.length;i++){
- int target = 0;
- if(i==0){
- strlist[i] = test[i];
- }else{
- boolean flag = false;
- for(int j=0;j<times.length;j++){
- if(test[i].equals(strlist[j])){
- flag = true;
- target = j;
- break;
- }else{
- continue;
- }
- }
- if(flag){
- String[] spi = test[i].split("\.");
- StringBuilder sb = new StringBuilder(spi[0]);
- sb.append("(").append(times[target]+"").append(")")
- .append(".").append(spi[1]);
- test[i] = sb.toString();
- times[target] += 1;
- }else{
- strlist = Arrays.copyOf(strlist, strlist.length+1);
- times = Arrays.copyOf(times, times.length+1);
- strlist[strlist.length-1] = test[i];
- times[times.length-1] = 1;
- }
- }
- }
- System.out.println("处理后的文件名数组"+Arrays.toString(test));
以上是关于从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加123等数字,保持后缀不变的主要内容,如果未能解决你的问题,请参考以下文章