得到當前目錄:
13
| String nowDir = new String(System.getProperty("user.dir")); |
以下列作為判斷做遞迴
25
27
| File nowFile = new File(dir);nowFile.isDirectory(); |
列出當前資料夾下的file清單
28
| File[] filelist = nowFile.listFiles(); |
Example:
要求使用者輸入關鍵字,會找到當前目錄下所有深度的檔案名稱有此關鍵字的檔案。
別列出其絕對路徑。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| package p3;import java.io.File;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class P5 { public static void main(String args[]){ String loopString = new String("yes"); Scanner scanner = new Scanner(System.in); String keyword = new String(); String nowDir = new String(System.getProperty("user.dir")); while (!loopString.equals("no")) { System.out.print("Search Content: "); keyword = scanner.nextLine().trim(); System.out.println("ok."); getDir(nowDir,keyword); System.out.print("continue? (yes or no): "); loopString = scanner.nextLine().trim(); } System.out.println("exit"); } public static void getDir(String dir, String keyword){ File nowFile = new File(dir); try { if (nowFile.isDirectory()) { File[] filelist = nowFile.listFiles(); for (int i = 0; i < filelist.length; i++) { if (filelist[i].isDirectory()) { //System.out.println(filelist[i].getPath()); getDir(filelist[i].getPath(),keyword); } } for (int i = 0; i < filelist.length; i++) { if (filelist[i].isFile()) { String str = new String(filelist[i].getName()); Pattern pattern = Pattern.compile(keyword); Matcher matcher = pattern.matcher(str); while (matcher.find()) { System.out.print(filelist[i].getName()+"\t"+filelist[i].getPath()+"\n"); } } } } } catch (Exception e) { // TODO: handle exception System.out.print(e); } }} |