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());
}
});
}
}