如何使用java从包含其中具有特定递归字符串的内容的文件夹中打印文件名

时间:2016-04-08 07:52:25

标签: java

我有一个文件夹名称"新文件夹"在里面,我有3个文件。我需要打印包含我姓名的文件名" Sheba"使用Java作为其内容。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您只需使用Java.io.File的listFiles方法在目录中列出该文件。 这是一个例子,我在列表中放入了名称包含Sheeba的所有文件:

     ArrayList<File> findFiles= new ArrayList<File>();
     f = new File("[path2newFolder]");
     File[] paths = f.listFiles();


     for(File path:paths)
     { // getting the files containing Sheeba
        if (path.getName().contains("Sheeba"){
            findFiles.add(path);
        }
     }

之后,您可以列出findFiles中包含的文件的内容。

答案 1 :(得分:0)

查看FileFilterFilenameFilter接口。

它们允许您在调用File.listFiles方法时仅获取所需的文件。使用它而不是在获取文件后过滤文件的一个好处是它更可重用。

实施例: 过滤器类(您可以创建一个匿名的):

public class MyFileFilter implements FilenameFilter {
    private String filenamePart;
    public MyFileFilter(String filenamePart) {
        this.filenamePart = filenamePart;
    }
    /**
     * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
     */
    @Override
    public boolean accept(File dir, String name) {
        return name.contains(filenamePart);
    }
}

你可以这样称呼它:

File[] paths = new File("c:\\myParentDirectory").listFiles();

请注意,您只在此父目录中列出文件(和目录)。不在子目录中。