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<File> list = Arrays.asList(files); sortAsName(list); handleFiles(list,num); }
/** * @param files 文件集合 * @param loap 文件名前缀:几位 */ private static void handleFiles(List<File> 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<loap){ for(int j=0;j<loap-l;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<File> files) { if(files.isEmpty()) return; Collections.sort(files, new Comparator<File>() { 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()); } }); } }
|