2012-11-27 32 views
0
循环

什么是重复在一个特定的文件夹归档的最佳方式,但没有循环?即当所有文件被检查一次时,for循环将结束。遍历在某些目录中的文件不需要在Java

我的示例代码(带环):

 File dir = new File(svnClient.getDestinationPath().getAbsolutePath()); 
      for (File child : dir.listFiles()) 
      { 
      report.report("File name: " + child.getName()); 
      } 
+1

没有循环?你的例子包含一个增强的for循环... – jlordo

+0

*为什么*你想这样做没有任何循环?你的问题不清楚...... –

+0

迭代,你需要一个循环。这样做的问题是什么,你建议? –

回答

3

递归:

public void myMethod(){ 
    File dir = ...; 
    List<File> files = Arrays.asList(dir.listFiles()); 
    recurse(files.iterator()); 
} 

private void recurse(Iterator<File> iterator){ 
    if (iterator.hasNext()){ 
      File file = iterator.next(); 
      report.report(file.getName()); 
      recurse(iterator); 
    } 
} 
+0

不知道为什么我的格式化状态越来越大清洗。 –

0

滥用listFiles(FileFilter filter)方法,把你的逻辑回调并忽略返回值。

File dir = ... 
dir.listFiles(new FileFilter() { 
    boolean accept(File child) { 
     report.report("File name: " + child.getName()); 
     return false; 
    } 
});