文件按照文件后缀名归类方案

文件按照文件后缀名归类方案

import java.io.File;
import java.io.FilenameFilter;

public class TestFinal {

	public static void main(String[] args) {
		File file = new File("D:/bbb/test");
		file.listFiles(new FilenameFilter() {

			@Override
			public boolean accept(File dir, String name) {
				
				if(new File(dir,name).isDirectory()) {
					new File("D:/bbb/文件夹").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/文件夹/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".java")) {
					new File("D:/bbb/JAVA").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/JAVA/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".txt")) {
					new File("D:/bbb/TXT").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/TXT/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".c")) {
					new File("D:/bbb/C").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/C/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".h")) {
					new File("D:/bbb/H").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/H/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".css")) {
					new File("D:/bbb/CSS").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/CSS/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".sql")) {
					new File("D:/bbb/SQL").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/SQL/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".dll")) {
					new File("D:/bbb/Dll").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/Dll/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".zip")) {
					new File("D:/bbb/ZIP").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/ZIP/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".doc")) {
					new File("D:/bbb/DOC").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/DOC/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".pptx")) {
					new File("D:/bbb/PPTX").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/PPTX/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".js")) {
					new File("D:/bbb/JS").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/JS/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".m")) {
					new File("D:/bbb/M").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/M/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".xls")) {
					new File("D:/bbb/XLS").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/XLS/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".bmp")) {
					new File("D:/bbb/BMP").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/BMP/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".cpp")) {
					new File("D:/bbb/CPP").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/CPP/" + name));
				}
				if(new File(dir,name).isFile() && name.endsWith(".jpg")) {
					new File("D:/bbb/JPG").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/JPG/" + name));
				}
				if(new File(dir,name).isFile()) {
					new File("D:/bbb/Other").mkdir();
					new File(dir,name).renameTo(new File("D:/bbb/Other/" + name));
				}
				return true;
			}
		});
		

	}

}
不用匿名内部类
import java.io.File;

public class Text {

	/*
	 *【任务实施】
	 * 文件归档
	 *	把后缀名相同的文件统一放在以后缀名命名的文件夹里
	 *	没有后缀名的文件放在NotNameSuffix文件里
	 *	文件夹统一放在Files文件夹下
	 *【实现思路】
	 *	先把里面的文件夹放在Files文件夹下
	 *	根据后缀把文件放在以后缀名命名的文件夹下
	 *	最后把没有后缀名的文件放在NotNameSuffix文件夹下
	 * @param args
	 */
	public static void main(String[] args) {
		File file = new File("C:\\Users\\小小三木\\Desktop\\test");
		fileDocument(file);
	}
	
	
	/**
	 * 将file参数对象进行文件归档
	 * @param file	需要进行文件归档的file对象
	 */
	public static void fileDocument(File file) {
		//首先判断file对象是否是一个文件夹
		if (!file.isDirectory()) {
			return;
		}
		//获取file对象的File[]
		File[] listFiles = file.listFiles();
		String pathParem = file.getPath();
		//遍历files数组
		for (File file2 : listFiles) {
			
			if(file2.isDirectory()) {
				//如果这个文件是文件夹就把这个文件夹剪切到files文件夹下
				File files = new File(pathParem + "/files");
				files.mkdirs();
				File  shearFile = new File(files + "/" + file2.getName());
				file2.renameTo(shearFile);
			} else {
				
				//如果是文件则根据后缀名进行判断
				int index = file2.getName().lastIndexOf('.');
				if (index >= 0) {
					//index >= 0说明文件有后缀,截取文件后缀名
					String nameFile = file2.getName().substring(index + 1);
					//在file对象代表的目录下创建以文件后缀名命名的文件夹
					File documentDir = new File(pathParem + "/" + nameFile);
					documentDir.mkdirs();
					File shearFile = new File(documentDir + "/" + file2.getName());
					file2.renameTo(shearFile);
				} else {
					//index < 0 说明没有后缀名,统一存放在NotNameSuffix文件夹下
					File notNameSuffix = new File(pathParem + "/NotNameSuffix");
					notNameSuffix.mkdirs();
					File shearFile = new File(notNameSuffix + "/" + file2.getName());
					file2.renameTo(shearFile);
				}
			}
		}
	}
	/*
	 * 【总结:】 这个方法中最重要的一点就是对文件或文件夹的拷贝 ———— boolean renameTo(File file);
	 * file.renameTo(file2),该方法把file对象剪切为file2对象 ,如果file2对象已经存在则不进行剪切,
	 * 所以在剪切的时候,要先创建file对象的存放目录,用fil3.mkdirs(),
	 * 之后再把要剪切的文件剪切到file对象 + 文件名的file4对象下
	 */
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值