获取文件列表
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
? ? 獲取指定文件夾下的文件列表,并以縮進(jìn)形式列出子文件夾中的文件和文件夾
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** @create 2017-09-23 20:06*/ public class Main {public static List<String> getListFiles(String path) {List<String> result = new ArrayList<String>();File f = new File(path);File[] files = f.listFiles();// 方法一:文件夾和文件名混合排序 // for (int i = 0; i < files.length; i++) { // if (files[i].isDirectory()) { //為目錄 // result.add(files[i].getPath().substring(files[i].getPath().lastIndexOf("\\") + 1)); // List<String> list = getListFiles(files[i].getAbsolutePath()); // for (String s : list) { // result.add("\t" + s); // } // } else { //為文件 // result.add(files[i].getName()); // } // }// 方法二:文件夾在前,文件在后ArrayList<File> file = new ArrayList<File>();ArrayList<File> directory = new ArrayList<File>();for (int i = 0; i < files.length; i++) {if (files[i].isDirectory()) {directory.add(files[i]);} else {file.add(files[i]);}}Collections.sort(file);Collections.sort(directory);for (int i = 0; i < directory.size(); i++) {result.add(directory.get(i).getPath().substring(directory.get(i).getPath().lastIndexOf("\\") + 1));List<String> list = getListFiles(directory.get(i).getAbsolutePath());for (String s : list) {result.add("\t" + s);}}for (int i = 0; i < file.size(); i++) {result.add(file.get(i).getName());}return result;}public static void main(String[] args) throws IOException {List<String> result = getListFiles("C:\\Windows");File f = new File("tmp.txt");f.delete(); //刪除上一次運(yùn)行后的tmp.txt文件FileWriter fw = new FileWriter("tmp.txt", true);for (String s : result) {fw.write(s + "\n");}fw.close();} }? ? 程序中將得到的結(jié)果寫(xiě)入了tmp.txt文件中,得到的結(jié)果如下
算法第四版ch11.1Main27.javaMain29.javaMain30.javaMain31.javaMain32.javaMain33.java1.2Main1.java1.3Main37.javaalgs4.jarstdlib.jar 背包九講.chm 練習(xí).doc? ? 程序還存在一些問(wèn)題,暫時(shí)還沒(méi)想出來(lái),比如當(dāng)?shù)刂窞镈盤(pán)的根地址,即"D:\\",或"C:\Windows"時(shí)會(huì)出現(xiàn)異常。求指教
Exception in thread "main" java.lang.NullPointerExceptionat Main.getListFiles(Main.java:33)at Main.getListFiles(Main.java:45)at Main.getListFiles(Main.java:45)at Main.main(Main.java:58)?
轉(zhuǎn)載于:https://my.oschina.net/yitiaoxianyu/blog/1542345
總結(jié)
- 上一篇: 201621123085 《Java程序
- 下一篇: Java消息系统介绍