就是有一个文件夹,里面的文件有很多个。  文件名是unnamed_0.adx,unnamed_1.adx …… unnamed_13126.adx 。怎么把这些文件名改为:unnamed_00000.adx,unnamed_00001.adx …… unnamed_13126.adx ?    就是后面的数字不足5位的,前面加0,直到有了5位数。 有5位的,则不变。    希望有高手帮忙解决一下, 谢谢!

解决方案 »

  1.   

    我的应用环境都是windows,所以我喜欢用vbs改文件名,然后再封装成JAVA的调用,因为用renameTo的时候,总是出现文件名修改不成功的情况.到现在也没查出原因是什么
      

  2.   

    用 递归的方法遍历所有文件 遍历(file)
       {
        if(文件是目录)
         循环(文件里的文件)
         {遍历()}
        
        else
        {处理}    
      } 在处理函数里面 每次调用file.getname()
     然后就是进行字符串的分析了
    先把文件后缀去除
    在进行分析
    然后用 renameTo 改名字
      

  3.   

    package Test;import java.io.File;public class renameFile { int NAME_NUMBER = 5;
    String FLAG = "_";
    String fileName ="";
    String num_fileName = "";
    String new_FileName = "";
    String dat = "";
    String folder = "";
    int num_length =0 ;
    public static void main(String [] args){
    renameFile rf = new renameFile();
    rf.processFloder("D:/file/");
    }

    public void processFloder(String strFolder){
    this.folder = strFolder;
    processFloder(new File(strFolder));
    }
    private void processFloder(File folder){
    //File folder = new File(strFolder);
    if(!folder.exists()){
    System.out.println("要处理的文件夹不存在!"+folder.getName());
    return;
    }
    File [] files = folder.listFiles();
    if(files.length == 0){
    System.out.println(folder.getName()+"文件夹下没有文件!");
    return;
    }
    for(int i=0;i<files.length;i++){
    File file = files[i];
    if(file.isDirectory()){
    processFloder(file);
    }else{
    rename(file);
    }

    }

    }
    private void rename(File file){
    fileName = file.getName();
    num_fileName = fileName.substring(fileName.indexOf(FLAG)+1,fileName.indexOf("."));
    dat = fileName.substring(fileName.lastIndexOf("."));
    num_length = num_fileName.trim().length();
    if(num_length == NAME_NUMBER)
    return;
    for(int i=0;i<NAME_NUMBER - num_length;i++){
    num_fileName = "0" + num_fileName;
    }
    new_FileName = folder+fileName.substring(0, fileName.indexOf(FLAG)+1) + num_fileName + dat;
    System.out.println(new_FileName);
    File newFile = new File(new_FileName); file.renameTo(newFile);
    System.out.println(file.getName()+"修改文件成功!");

    }
    }
      

  4.   

    获取每一个 FILE对象然后需要改名的就调用renameTo方法至于怎么判断需要该名FILE 的 也有获取文件名的方法获取之后自己判断吧...