2013-03-30 45 views
-1

的到目前为止,我创建一个名为“SRC”在当前目录下的一个文件夹阵列.java文件

new File("src").mkdir(); 

其次,如果有src文件夹中的任何.java文件,我想将它们存储在array

JavaFileObject javaFileObjects[] = new JavaFileObject[]{}; 

有人可以提供一个解决方案,用sja文件夹中的.java文件填充此数组。

+5

使用,检查的扩展名“的.java” – duffymo

+0

器的FileFilter将关闭,选民请解释如何这是NARQ? – djechlin

回答

1

是的,如评论所述,使用FileFilter并检查.java扩展名。

0

像这样:

File parentDirectory = new File("src"); 
File [] javaFiles = parentDirectory.listFiles(new RecursiveExtensionFileFilter(".java")); 

这里,你可能会发现有用的过滤器类:

package util; 

import org.apache.commons.lang3.StringUtils; 

import java.io.File; 
import java.io.FileFilter; 

/** 
* RecursiveExtensionFileFilter for filtering only Word .doc files 
* @author Michael 
* @link 
* @since 2/13/13 10:21 AM 
*/ 
public class RecursiveExtensionFileFilter implements FileFilter { 
    public static final String DEFAULT_WORD_EXTENSION = ".doc"; 
    private final String extension; 
    private final boolean makeLowerCase; 

    public RecursiveExtensionFileFilter(String extension) { 
     this(extension, false); 
    } 

    public RecursiveExtensionFileFilter(String extension, boolean makeLowerCase) { 
     if (StringUtils.isBlank(extension)) 
      throw new IllegalArgumentException("file extension cannot be blank or null"); 
     this.extension = extension; 
     this.makeLowerCase = makeLowerCase; 
    } 

    @Override 
    public boolean accept(File pathname) { 
     boolean isWordDocOrDirectory = false; 
     if (pathname != null) { 
      if (pathname.isDirectory()) { 
       isWordDocOrDirectory = true; 
      } else { 
       String absolutePath = pathname.getAbsolutePath(); 
       if (this.makeLowerCase) { 
        absolutePath = absolutePath.toLowerCase(); 
       } 
       isWordDocOrDirectory = (absolutePath.lastIndexOf(this.extension) == (absolutePath.length() - this.extension.length())); 
      } 
     } 
     return isWordDocOrDirectory; 
    } 
} 
+0

不知道为什么发布了两次。我将删除一个。 – duffymo