的到目前为止,我创建一个名为“SRC”在当前目录下的一个文件夹阵列.java文件
new File("src").mkdir();
其次,如果有src文件夹中的任何.java文件,我想将它们存储在array
JavaFileObject javaFileObjects[] = new JavaFileObject[]{};
有人可以提供一个解决方案,用sja文件夹中的.java文件填充此数组。
的到目前为止,我创建一个名为“SRC”在当前目录下的一个文件夹阵列.java文件
new File("src").mkdir();
其次,如果有src文件夹中的任何.java文件,我想将它们存储在array
JavaFileObject javaFileObjects[] = new JavaFileObject[]{};
有人可以提供一个解决方案,用sja文件夹中的.java文件填充此数组。
是的,如评论所述,使用FileFilter
并检查.java
扩展名。
像这样:
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;
}
}
不知道为什么发布了两次。我将删除一个。 – duffymo
使用,检查的扩展名“的.java” – duffymo
器的FileFilter将关闭,选民请解释如何这是NARQ? – djechlin