遍历一个文件夹根据文件扩展名将文件分类

本文介绍了一个文件分类工具的实现,该工具能够遍历指定目录下的所有文件,并根据文件扩展名将其移动到不同的目标文件夹中。支持处理wsdl、asmx、htm和html等类型的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class FileClassify {

private static void classify(String filePath, String target) {
try {
int k = filePath.lastIndexOf("/");
String fileName = filePath.substring(k);
File in = new File(filePath);
target = target + fileName;
File out = new File(target);
FileInputStream inFile = new FileInputStream(in);
FileOutputStream outFile = new FileOutputStream(out);
byte[] buffer = new byte[1024];
int i = 0;
while ((i = inFile.read(buffer)) != -1) {
outFile.write(buffer, 0, i);
}
inFile.close();
outFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static List bianli(File dir) {
List fileList = new ArrayList();

if (!dir.exists()) {
System.out.println("File dosen't exist:" + dir);
return null;
} else if (!dir.isDirectory())
fileList.add(dir);
else {
File[] fe = dir.listFiles();
for (int i = 0; i < fe.length; i++) {
if (fe[i].isDirectory())
fileList.addAll(bianli(fe[i]));
else
fileList.add(fe[i]);
}
}
return fileList;
}

public static void main(String[] args) throws Exception {

List files = bianli(new File("F:\\mirror\\"));
for (int i = 0; i < files.size(); i++) {
String filePath = ((File) files.get(i)).toURI().toString();// 这里filePath值为file:/F:/mirror/...
filePath = filePath.substring(6);// 取文件实际路径,即"F:/mirror/..."
if ((filePath != null) && filePath.length() > 0) {
int j = filePath.lastIndexOf('.');
if ((j > -1) && (j < (filePath.length() - 1))) {
String exn = filePath.substring(j + 1);
if (exn.equals("wsdl") || exn.equals("asmx")) {
classify(filePath, "d:/wsdl");
} else if (exn.equals("htm") || exn.equals("html")) {
classify(filePath, "d:/htm");
}

}
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值