當初在開始接觸Java時 學習File部分的一個小練習 挺有意思
一開始是通過看 北京聖思園 張龍老師的視頻開始學校java的,必須強烈推薦,真很棒。
功能實現:主要實現以樹形方式展現出該目錄中的所有子目錄和文件。 另外, 在展現的時候將目錄排在上面,文件排在下面。每一層要加上縮進。 文件是jre6文件夾,我想這文件夾就不用我說什么了。換上自己的文件路徑就可以了。
- import java.io.File;
- public class FileTest2
- {
- public static int count = 0;
- public static void parse(File[] files)
- {
- if(files.length == 0)
- {
- FileTest2.count--;
- System.out.println();
- return;
- }
- else
- {
- for(File f : files)
- {
- if(f.isDirectory())
- {
- FileTest2.count++;
- for(int i = 1; i <= FileTest2.count; i++)
- {
- System.out.print("\t");
- }
- System.out.println(f.getName());
- File[] files2 = f.listFiles();
- FileTest2.parse(files2);
- }
- }
- for(File f : files)
- {
- if(!f.isDirectory())
- {
- for(int i = 0; i <= FileTest2.count; i++)
- {
- System.out.print("\t");
- }
- System.out.println(f.getName());
- }
- }
- FileTest2.count--;
- }
- }
- public static void main(String[] args)
- {
- File file = new File("C:\\Program Files\\Java\\jre6");
- File[] files = file.listFiles();
- FileTest2.parse(files);
- }
- }
- **************************第二種****************************************
-
1 /* 2 使用遞歸找出某目錄("C:\\JavaProducts")下的所有子目錄以及子文件 3 */ 4 5 import java.util.*; 6 import java.io.*; 7 8 public class FileRecursionPrintDemo{ 9 public static void main(String[] args){ 10 List<String> paths = new ArrayList<String>(); 11 paths = getAllFilePaths(new File("C:\\JavaProducts"),paths); 12 for(String path:paths){ 13 System.out.println(path); 14 } 15 } 16 17 private static List<String> getAllFilePaths(File filePath,List<String> filePaths){ 18 File[] files = filePath.listFiles(); 19 if(files == null){ 20 return filePaths; 21 } 22 for(File f:files){ 23 if(f.isDirectory()){ 24 filePaths.add(f.getPath()); 25 getAllFilePaths(f,filePaths); 26 }else{ 27 filePaths.add(f.getPath()); 28 } 29 } 30 return filePaths; 31 } 32 }