Java输出某路径下的指定类型文件的文件名及绝对路径
给定一个文件夹的路径,输出该文件夹下所有的pdf(任意类型)文件的绝对路径。
实在没有想到腾讯面试会问这种程序题,措手不及。。。。
直接上代码
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class ReadFile {
public List<String> files1 = new ArrayList<String>(); // 存储绝对路径
public List<String> files2 = new ArrayList<String>(); // 存储名字
/*
* explain:输出指定文件夹下的某类型文件
* @param 文件路径
* @param 文件类型
*/
public void getFiles(String path, String fileClass) {
File file = new File(path);
File[] tempList = file.listFiles(); // 获取该路径下所有的File对象
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("文件:" + tempList[i]);
if(tempList[i].getName().endsWith(fileClass)) {
files1.add(tempList[i].toString()); // 获取绝对路径
files2.add(tempList[i].getName()); // 只获取名字
}
}
if (tempList[i].isDirectory()) { // 如果是文件夹,进行递归调用
System.out.println("文件夹:" + tempList[i]);
getFiles(tempList[i].toString(), fileClass);
}
}
}
public static void main(String[] args) {
ReadFile test = new ReadFile();
test.getFiles("D:\\研三", ".pdf");
System.out.println(test.files1);
System.out.println(test.files2);
}
}
输出结果示例
文件:D:\研三\MySQL必知必会.pdf
文件夹:D:\研三\数据库教程
文件夹:D:\研三\数据库教程\MySQL
文件:D:\研三\数据库教程\MySQL\create.sql
文件:D:\研三\数据库教程\MySQL\MySQL必知必会 高清晰中文书签版.pdf
文件:D:\研三\数据库教程\MySQL\populate.sql
文件:D:\研三\数据库教程\深入浅出MyBatis技术原理与实战.pdf
[D:\研三\MySQL必知必会.pdf, D:\研三\数据库教程\MySQL\MySQL必知必会 高清晰中文书签版.pdf, D:\研三\数据库教程\深入浅出MyBatis技术原理与实战.pdf]
[MySQL必知必会.pdf, MySQL必知必会 高清晰中文书签版.pdf, 深入浅出MyBatis技术原理与实战.pdf]