如何以递归方式从Java中的文件夹和子文件夹中添加一些.txt文件

时间:2015-02-19 21:53:56

标签: java

我一直试图从文件夹和子文件夹递归地使用某些txt文件中的一些数据(我想在这些txt文件中找到一些单词)(我必须从一些文件夹中找到这些文件,所有这些文件都是在Java中的同一文件夹中,我该怎么办?

2 个答案:

答案 0 :(得分:0)

void processInput(final String directoryName) {

    final File inputDirectory = new File(directoryName);
    for (final String inputFile : inputDirectory.list()) {
        final File file = new File(directoryName + File.separator
                + inputFile);
        if (file.isDirectory()) {
            processInput(directoryName + File.separator + inputFile);
        } else {
            processFile(file);
        }
    }
}

答案 1 :(得分:0)

  

我认为这是做到这一点的好方法:

private static void addfiles (File input,ArrayList<File> files)
    {
        if(input.isDirectory())
        {
            ArrayList <File> path = new ArrayList<File>(Arrays.asList(input.listFiles()));
            for(int i=0 ; i<path.size();++i)
            {
                if(path.get(i).isDirectory())
                {
                    addfiles(path.get(i),files);
                }
                if(path.get(i).isFile())
                {
                    String name=(path.get(i)).getName();
                    if(name.lastIndexOf('.')>0)
                    {
                        int lastIndex = name.lastIndexOf('.');
                        String str = name.substring(lastIndex);
                        if(str.equals(".txt"))
                        {
                            files.add(path.get(i));
                        }
                    }
                }
            }
        }
        if(input.isFile())
        {
            String name=(input.getName());
            if(name.lastIndexOf('.')>0)
            {
                int lastIndex = name.lastIndexOf('.');
                String str = name.substring(lastIndex);
                if(str.equals(".txt"))
                {
                    files.add(input);
                }
            }
        }

    }