62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class ListFiles {
public static void main(String[] args) {
System.out.print("请输入目录:");
Scanner sc = new Scanner(System.in);
String dirStr = sc.next();
System.out.print("请输入文件格式(比如JPG、txt、xls、docx……):");
String hzName = sc.next();
System.out.println("要查找的目录为=" + dirStr + ",要查找的文件格式=" + hzName);
List<String> list = new ArrayList<String>();
list = listFilesByDirPath(list, dirStr, hzName);
System.out.println(Arrays.toString(list.toArray()));
writeToFile(list,"D:\\result.txt");
sc.close();
}
/**
* 列出目录
* @param list
* @param path
* @param hzm
* @return
*/
public static List<String> listFilesByDirPath(List<String> list,
String path, String hzm) {
File file = new File(path);
String[] files = file.list();
if (null != files) {
for (String strName : files) {
String newPath = path + File.separator + strName;
File fileChild = new File(path + File.separator + strName);
if (fileChild.isFile()) {
String fileName = fileChild.getName();
int index = fileName.lastIndexOf(".");
String hzm_file = fileName.substring(index + 1);
if (hzm_file.toLowerCase().equals(hzm.toLowerCase())) {
list.add(newPath);
}
} else {
listFilesByDirPath(list, newPath, hzm);
}
}
}
else{
System.out.println("不存在该目录");
}
return list;
}
/**
* 把结果写入文件
* @param list
* @param path
*/
public static void writeToFile(List<String> list,String path){
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(path));
for(int i=0;i<list.size();i++){
String filename = list.get(i);
bw.write(filename+"\n");
}
bw.flush();
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
参考下,如果是作业题,希望楼主下次不要这样发帖了,按1楼兄弟那样说的,你自己先写,看哪边不会,然后把代码贴出来,再问大家