|
|
|
Глубина поиска в обходе дерева файловой системы
|
|||
|---|---|---|---|
|
#18+
И так, нужно реализовать следующее - пользователь вводит в консоль три параметра, путь к начальному каталогу, маску, и глубину поиска. Программа должна найти все файли и папки, в которых есть маска, на нужной глубине. Реализовать сам поиск у меня получилось. Не решенным остался вопрос как прикрутить к этому глубину поиска. Ниже приведен код, если у кого - то есть какие - то соображения, буду благодарен. import java.io.*; import java.util.ArrayList; import java.util.Arrays; public class TestPE { // фильтр static class MyFilter implements FilenameFilter { private String mask; public MyFilter(String mask) { this.mask = mask; } public boolean accept(File dir, String name) { File f = new File (name); if (f.getName().contains(mask)){ return true; } else {return false;} } } public static void main (String args []){ String Path = args[0]; String mask = args[1]; // Integer depth_temp =Integer.valueOf(args[2]); //int depth = depth_temp.intValue(); File rootPath = new File (Path); if (rootPath.isDirectory()){ ArrayList <File> listt = new ArrayList <File> (); listt.add(rootPath); do { for (int i=0; i<listt.size(); i++){ if (listt.get(i).isDirectory()){ listt.addAll(Arrays.asList(listt.get(i).listFiles())); } } } while (listt.isEmpty()); File [] all = listt.toArray(new File[listt.size()]); for (int i=0; i<all.length; i++){ if (all[i].isDirectory()){ File [] folderlist = all[i].listFiles(new MyFilter(mask)); for (int j=0; j<folderlist.length; j++){ System.out.println(folderlist[j]); } } } } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 21:50:53 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130739]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 310ms |
| total: | 430ms |

| 0 / 0 |
