java 文件前缀_文件名加前缀(001_)文件按文件名排列

这个Java程序用于批量在文件名前添加指定前缀(如001_),并按照文件名进行排序。它遍历指定目录及其子目录,对每个文件进行重命名操作,并使用自定义的FileFilter筛选文件和目录。
摘要由CSDN通过智能技术生成

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

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值