@Nonnull
    public static FileSet createFileSet(@Nonnull File baseDir, @Nonnull String includes, @CheckForNull String excludes) {
        FileSet fs = new FileSet();
        fs.setDir(baseDir);
        fs.setProject(new Project());

        StringTokenizer tokens;

        tokens = new StringTokenizer(includes,",");
        while(tokens.hasMoreTokens()) {
            String token = tokens.nextToken().trim();
            fs.createInclude().setName(token);
        }
        if(excludes!=null) {
            tokens = new StringTokenizer(excludes,",");
            while(tokens.hasMoreTokens()) {
                String token = tokens.nextToken().trim();
                fs.createExclude().setName(token);
            }
        }
        return fs;
    }
@ Nonnull public static FileSet createFileSet ( @ Nonnull File baseDir , @ Nonnull String includes , @ CheckForNull String excludes ) { FileSet fs = new FileSet ( ) ; fs . setDir ( baseDir ) ; fs . setProject ( new Project ( ) ) ; StringTokenizer tokens ; tokens = new StringTokenizer ( includes , "," ) ; while ( tokens . hasMoreTokens ( ) ) { String token = tokens . nextToken ( ) . trim ( ) ; fs . createInclude ( ) . setName ( token ) ; } if ( excludes != null ) { tokens = new StringTokenizer ( excludes , "," ) ; while ( tokens . hasMoreTokens ( ) ) { String token = tokens . nextToken ( ) . trim ( ) ; fs . createExclude ( ) . setName ( token ) ; } } return fs ; }
Creates Ant {@link FileSet} with the base dir and include pattern.

<p>
The difference with this and using {@link FileSet#setIncludes(String)}
is that this method doesn't treat whitespace as a pattern separator,
which makes it impossible to use space in the file path.

@param includes
String like "foo/bar/*.xml" Multiple patterns can be separated
by ',', and whitespace can surround ',' (so that you can write
"abc, def" and "abc,def" to mean the same thing.
@param excludes
Exclusion pattern. Follows the same format as the 'includes' parameter.
Can be null.
@since 1.172