zoukankan      html  css  js  c++  java
  • 从ftp服务器进行批量下载,处理文件名保存时重名的问题,更改重名文件名方式为给后面加1、2、3等数字,保持后缀不变

    公司最近有一个从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));  
  • 相关阅读:
    语音激活检测(VAD)--前向神经网络方法(Alex)
    语音信号处理基础
    MySQL死锁系列-插入语句正常,但是没有插入成功
    关于wx.getProfile和wx.login获取解密数据偶发失败的原因
    指针访问数组元素
    libev 源码解析
    leveldb 源码--总体架构分析
    raft--分布式一致性协议
    使用springcloud gateway搭建网关(分流,限流,熔断)
    爬虫
  • 原文地址:https://www.cnblogs.com/Monroyhahaha/p/11681875.html
Copyright © 2011-2022 走看看