[align=center][b]批量修改文件名,移动文件,删除空文件夹[/b][/align]
1、有时候,当我们遇到一个文件夹里面,存在多个文件夹,而这些子文件夹里面又放着要排序的文件的时候,如果让我们自己去手动修改文件名会比较麻烦,特别是当文件较多的时候,这时我们就可以用程序自动批量修改,这只是个小应用,希望能够帮到有需要的人,比较简单。不过在使用前,请先做好备份哦!!!
2、当我们修改文件名以后,往往还需要把修改后的文件移动到一个相同的目录下。下面的程序提供了这个小功能,只在Windows环境下起作用,使用前先备份。
3、当移动文件后,会存在空的文件夹,此处再提供一个程序,用于删除当前文件夹下面所有空文件夹!
1、有时候,当我们遇到一个文件夹里面,存在多个文件夹,而这些子文件夹里面又放着要排序的文件的时候,如果让我们自己去手动修改文件名会比较麻烦,特别是当文件较多的时候,这时我们就可以用程序自动批量修改,这只是个小应用,希望能够帮到有需要的人,比较简单。不过在使用前,请先做好备份哦!!!
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestModifyFileName {
private static Pattern p = Pattern.compile(".+\\.avi$");
public static void main(String[] args) {
File f = new File("F:\\itcast\\hibernate\\hibernate1");
modify(f);
}
private static int count = 1;
public static void modify(File f) {
if(!f.exists()) {
return;
}
if(f.isDirectory()) {
File[] fs = f.listFiles();
for(int i = 1; i <= fs.length; i++) {
File file = fs[i - 1];
if(file.isDirectory()) {
modify(file);
}
if(file.isFile()) {
Matcher m = p.matcher(file.getName());
if(m.matches()) {
String path = file.getPath().substring(0,file.getPath().indexOf(file.getName()));
file.renameTo(new File(path + count + "_" + file.getName()));
count ++;
} else {
file.delete();
}
}
}
}
}
}
2、当我们修改文件名以后,往往还需要把修改后的文件移动到一个相同的目录下。下面的程序提供了这个小功能,只在Windows环境下起作用,使用前先备份。
import java.io.File;
public class TestMoveFile {
private static final String dir = "F:\\itcast\\hibernate\\hibernate1\\";
public static void main(String[] args) {
File f = new File(dir);
move(f);
}
private static void move(File f) {
//判断路径或者文件是否存在,不存在直接返回
if(!f.exists()) {
return;
}
//如果传入的是文件,列出所有子文件或者目录
if(f.isDirectory()) {
File[] fs = f.listFiles();
//判断所有子文件或者目录,如果是目录调用自身
for(int i = 0; i < fs.length; i++) {
File file = fs[i];
if(file.isDirectory()) {
move(file);
}
if(file.isFile()) {
//System.out.println(dir + file.getName());
File fileTo = new File(dir + file.getName());
file.renameTo(fileTo);
file.delete();
}
}
}
}
}
3、当移动文件后,会存在空的文件夹,此处再提供一个程序,用于删除当前文件夹下面所有空文件夹!
import java.io.File;
public class TestDeleteEmptyDirectory {
public static void main(String[] args) {
File f = new File("F:\\itcast\\babasport2");
deleteEmptyDirectory(f);
}
public static void deleteEmptyDirectory(File f) {
if(!f.exists()) {
return;
}
if(f.isDirectory()) {
File[] files = f.listFiles();
if(files.length == 0) {
System.out.println(f.getName());
f.delete();
return;
}
for(int i = 0; i < files.length; i++) {
File file = files[i];
if(file.isDirectory()) {
deleteEmptyDirectory(file);
}
}
}
}
}