-1

これまでのところ、現在のディレクトリに「src」というフォルダーを作成します

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

次に、src フォルダーに .java ファイルがあれば、それらを配列に格納したい

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

この配列を src フォルダー内の .java ファイルで埋めるための解決策を誰かが提供できますか?

4

2 に答える 2

1

はい、コメントが言うように、 a を使用して拡張子FileFilterを確認してください。.java

于 2013-03-30T18:32:10.933 に答える
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;
    }
}
于 2013-03-30T18:34:13.423 に答える