幼儿园晨检表格图片:文件名加前缀(001_)文件按文件名排列

来源:百度文库 编辑:中财网 时间:2024/05/02 18:31:19

package com.file;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

 

/**
 *  FileRename.java
 *  @Author      hasau  
 *  @Email       hasau@163.com
 *  @CreateTime  2012-1-4  下午7:57:17 
 **/
public class FileRename {
 
 
  public static void main(String[] args) {
   String name = "E:/picture";
   doSome(name,5);
  }
 
 
  /**
  * @param name   目标文件的目录名
  * @param num    文件名前缀:几位  001_abc.jpg 3为
  */
 private static void doSome(String name,int num){   
   File file = new File(name);   
   File[] files = file.listFiles(ff);   
   File[] dirs = file.listFiles(dir);
   for(File f : dirs){
    doSome(f.getAbsolutePath(),num);
   }   
   
   List list = Arrays.asList(files);
   sortAsName(list); 
   
   handleFiles(list,num);
  }


 /**
  * @param files  文件集合
  * @param loap   文件名前缀:几位
  */
 private static void handleFiles(List files,int loap) {
  String prefix=null;
  String fname = null;
  String path = null;
  int count = 0; 
  for(File f : files){   
   prefix = null;
   fname = null;
   path = null;
   
   count++;
   prefix=count+"";
   int l = prefix.length();
   if(l    for(int j=0;j     prefix = "0"+ prefix;
    }
   }
   fname = f.getName();
   path = f.getAbsolutePath();
 
   int i = path.lastIndexOf(fname);
   path = path.substring(0, i)+prefix+"_"+fname;
   
   boolean flag = f.renameTo(new File (path));
   if(flag){    
    System.out.println(f.getAbsolutePath());
    System.out.print("____"+f.length());
   }
  }
 }
 
    
 private static FileFilter ff = new FileFilter() { 
  public boolean accept(File f) {
   if(f.isFile()){
    return true;
   }
   return false;
  }
 };
 
 private static FileFilter dir = new FileFilter() {  
  public boolean accept(File f) {
   if(f.isDirectory()){
    return true;
   }
   return false;
  }
 };
 
 /**
  *  文件名排序   上未测试
  * */
 private static void sortAsName(List files) {
  if(files.isEmpty())  return;
  Collections.sort(files, new Comparator() {
   public int compare(File o1, File o2) {
    if (o1.isDirectory() && o2.isFile())
     return -1;
    if (o1.isFile() && o2.isDirectory())
     return 1;
    return o1.getName().compareTo(o2.getName());
   }
  });
 }
 
}