集册 Java实例教程 按文件扫描资源名称

按文件扫描资源名称

欢马劈雪     最近更新时间:2020-01-02 10:19:05

418
按文件扫描资源名称

/*

 * Copyright Bruce Liang (ldcsaa@gmail.com)

 *

 * Version   : JessMA 3.5.1

 * Author   : Bruce Liang

 * Website   : http://www.jessma.org

 * Project   : http://www.oschina.net/p/portal-basic

 * Blog      : http://www.cnblogs.com/ldcsaa

 * WeiBo   : http://weibo.com/u/1402935851

 * QQ Group   : 75375912

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *      http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

import java.io.File;//N o w  J a v a  . c o m 提供

import java.io.FileFilter;

import java.io.IOException;

import java.net.JarURLConnection;

import java.net.URL;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

import java.util.jar.JarEntry;

import java.util.jar.JarFile;

import java.util.regex.Pattern;


public class Main{
/* from 
时 代 J a v a 公 众 号*/

    private static final char PATH_SEP_CHAR = '/';

    private static final String PATH_SEP_STR = "/";

    

    public static final void scanResourceNamesByFile(String filePath,

            final int packageStartIndex, final boolean recursive,

            Set<String> names) {

        scanResourceNamesByFile(filePath, packageStartIndex, recursive,

                null, names);

    }

    

    public static final void scanResourceNamesByFile(String filePath,

            int packageStartIndex, final boolean recursive,

            final ResourceFilter filter, Set<String> names) {

        if (filePath.endsWith(PATH_SEP_STR))

            filePath = filePath.substring(0, filePath.length() - 1);

        if (packageStartIndex > filePath.length())

            packageStartIndex = filePath.length();


        final String basePackagePath = filePath

                .substring(packageStartIndex);


        File dir = new File(filePath);

        File[] files = dir.listFiles(new FileFilter() {

            @Override

            public boolean accept(File file) {

                if (file.isDirectory())

                    return recursive;


                if (filter != null) {

                    String fileName = file.getName();

                    return filter.accept(basePackagePath, fileName);

                }


                return true;

            }

        });


        
展开阅读全文