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]