• 批量按要求修改文件名


    下载flv文件出现重名,需要一个个改很是麻烦,有了程序就就可以批量搞定了,只需设置几个参数

      1 import java.io.File;
      2 import java.util.LinkedList;
      3 
      4 public class ChangeFileName{
      5     private String fileDir;
      6     private String fileSuffix;
      7     private String filename;
      8     private String numstart;
      9     private String numend;
     10     private int volumeoffset=0;
     11 
     12     public static void main(String[] args) {
     13         long a = System.currentTimeMillis();
     14         ChangeFileName c =new ChangeFileName();
     15         c.setFileDir("F:\player\lyu");
     16         c.setFileSuffix(".mp4");
     17         c.setFilename("狼烟");
     18         c.setNumstart("(");
     19         c.setNumend(")");
     20         c.setVolumeoffset(0);
     21         c.getFileNameList(c);
     22         System.out.println("耗时"+(System.currentTimeMillis() - a)+" millisecond");
     23     }
     24 
     25     /**
     26      * 递归查找当前给定目录下符合条件的文件,并返回所有合适文件的路径链表。
     27      */
     28     public LinkedList<String> getFileNameList(ChangeFileName c) {
     29         String strPath=c.getFileDir();
     30         
     31         File dir = new File(strPath);
     32         File[] files = dir.listFiles();
     33         LinkedList<String> FileNames = new LinkedList<String>();
     34         String newFileName;
     35         if (files == null)
     36             return null;
     37         for (int i = 0; i < files.length; i++) {
     38             if (files[i].isDirectory()) {
     39                 getFileNameList(c);
     40             } else {
     41                 newFileName = doChangeFileName(files[i],c);
     42                 if (newFileName != null) {
     43                     FileNames.add(newFileName);
     44                     System.out.println(newFileName);
     45                 }
     46             }
     47         }
     48         return FileNames;
     49     }
     50     /**
     51      * 检测file是否符合cf所列条件,如符合则按cf所列条件改变文件名
     52      * @param file 
     53      * @param cf
     54      * @return
     55      */
     56     private String doChangeFileName(File file,ChangeFileName cf){
     57         String newfilename=cf.getFilename();
     58         String suffix=cf.getFileSuffix();
     59         String start=cf.getNumstart();
     60         String end=cf.getNumend();
     61         int offset=cf.getVolumeoffset();
     62         
     63         String filefullname = file.getAbsolutePath();
     64         int spritindex=filefullname.lastIndexOf("\");
     65         String filepath=filefullname.substring(0, spritindex+1);
     66         File newfile = file;
     67         if (filefullname.endsWith(suffix)) {
     68             int leftbracketindex=filefullname.indexOf(start)+1;
     69             int rightbracketindex=filefullname.indexOf(end);
     70             int volume=Integer.parseInt(filefullname.substring(leftbracketindex, rightbracketindex))+offset;
     71             String volumestr=addZero(volume);
     72             newfile=new File(filepath+newfilename+volumestr+suffix);
     73             file.renameTo(newfile);
     74         }
     75         return newfile.getAbsolutePath();
     76     }
     77     
     78     private String addZero(int volume){
     79         String volumeStr="";
     80         if(volume<10){
     81             volumeStr="0"+volume;
     82         }else{
     83             volumeStr=String.valueOf(volume);
     84         }
     85         return volumeStr;
     86     }
     87     
     88     //getter and setter
     89     public String getFileDir() {
     90         return fileDir;
     91     }
     92 
     93     public void setFileDir(String fileDir) {
     94         this.fileDir = fileDir;
     95     }
     96 
     97     public String getFileSuffix() {
     98         return fileSuffix;
     99     }
    100 
    101     public void setFileSuffix(String fileSuffix) {
    102         this.fileSuffix = fileSuffix;
    103     }
    104 
    105     public String getFilename() {
    106         return filename;
    107     }
    108 
    109     public void setFilename(String filename) {
    110         this.filename = filename;
    111     }
    112 
    113     public String getNumstart() {
    114         return numstart;
    115     }
    116 
    117     public void setNumstart(String numstart) {
    118         this.numstart = numstart;
    119     }
    120 
    121     public String getNumend() {
    122         return numend;
    123     }
    124 
    125     public void setNumend(String numend) {
    126         this.numend = numend;
    127     }
    128 
    129     public int getVolumeoffset() {
    130         return volumeoffset;
    131     }
    132 
    133     public void setVolumeoffset(int volumeoffset) {
    134         this.volumeoffset = volumeoffset;
    135     }
    136 
    137  
    138     
    139 }
    View Code
  • 相关阅读:
    学习中的坑
    友链
    CF1131E String Multiplication 题解
    CF438E The Child and Binary Tree 题解
    [WC2005]友好的生物题解
    [IOI2016]shortcut 题解
    CF911F [Tree Destruction] 题解
    状压dp技巧之轮廓线 hdu1400/poj2411acwing291 蒙德里安的梦想
    TG-WC2021 笔记
    拯救世界2题解
  • 原文地址:https://www.cnblogs.com/gis2s/p/3316429.html
Copyright © 2020-2023  润新知