如何从父目录搜索子目录? [英] How to search for a subdirectory from a parent directory?

查看:126
本文介绍了如何从父目录搜索子目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

public class DirectoryContents
{

    public static void main(String[] args) throws IOException 
    {

        File f = new File("."); 
        FileFilter directoryFilter = new FileFilter()
        {
            public boolean accept(File file)
            {
            return file.isDirectory();
            }
        };

        File[] files = f.listFiles(directoryFilter);
        for (File file : files) 
        {
            if (file.isDirectory()) 
            {
                System.out.print("directory:");
            } 
            else
            {
                System.out.print("     file:");
            }
            System.out.println(file.getCanonicalPath());
        }

    }

}



<我可以从父目录中列出所有的子目录。
但是我想在java.Is中搜索特定的子目录有什么办法?

I m able to list all the sub directories from the parent directory. But I would like to search for particular sub directory in java.Is there any way?

directory:C:\projects\workspace\testing

如何仅列出子目录(z1)而不是文件? (子目录z1存在于各个子目录中)

how to list only subdirectories (z1) and not files? (Sub directory z1 is present in various sub directories)

directory:C:\projects\workspace\testing\z1
directory:C:\projects\workspace\testing\f5\z1
directory:C:\projects\workspace\testing\f5\a\g\h\d

输出应为包含z1的目录

The Output should be directories containing z1

推荐答案

使用 Files.walkFileTree ,它将递归显示与您的父目录相对应的子目录。 / p>

Use Files.walkFileTree, it will recursively show your sub-directory corresponding to your parent directory.

public static void main(String[] args) throws IOException {
    Path startingDir = Paths
            .get("C:\\projects\\workspace\testing");
    Files.walkFileTree(startingDir, new FindJavaVisitor());
}

private static class FindJavaVisitor extends SimpleFileVisitor<Path> {
     @Override
    public FileVisitResult preVisitDirectory(Path dir, 
                          BasicFileAttributes attrs) throws IOException {
    if(dir.getFileName().toAbsolutePath().toString().contains("z1")){
        System.out.println("z1 is found at"+ dir.getFileName().toAbsolutePath());
    }
      return FileVisitResult.CONTINUE;
    }
}

这篇关于如何从父目录搜索子目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆