繁体   English   中英

如何在Java中扫描文件夹?

[英]How do I scan a folder in Java?

我需要在Java中扫描一个特定的文件夹,并能够返回特定类型的整数个文件(不仅基于扩展名,还基于命名约定。)例如,我想知道有多少个JPG文件\\ src文件夹有一个简单的整数文件名(例如,1.JPG到30.JPG)。 谁能指出我正确的方向? 谢谢

java.io.File.list(FilenameFilter)是您正在寻找的方法。

我有一个方法,使用正则表达式模式来处理相当复杂的文件结构。 可以使用类似的东西,虽然我确信它可以比我的例子(为了安全而编辑)更简洁。

/**
     * Get all non-directory filenames from a given foo/flat directory
     * 
     * @param network
     * @param typeRegex
     * @param locationRegex
     * @return
     */
    public List<String> getFilteredFilenames(String network, String typeRegex, String locationRegex) {

        String regex = null;

        List<String> filenames = new ArrayList<String>();
        String directory;

        // Look at the something network
        if (network.equalsIgnoreCase("foo")) {

            // Get the foo files first
            directory = this.pathname + "/" + "foo/filtered/flat";
            File[] foofiles = getFilenames(directory);

            // run the regex if need be.
            if (locationRegex != null && typeRegex != null ) {
                regex = typeRegex + "." + locationRegex;

                //System.out.println(regex);
            }


            for (int i = 0; i < foofiles.length; i++) {
                if (foofiles[i].isFile()) {
                    String file = foofiles[i].getName();

                    if (regex == null) {
                        filenames.add(file);
                    }
                    else {
                        if (file.matches(regex)) {
                            filenames.add(file);
                        }
                    }
                }
            }
        }

        return filenames;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM