【问题标题】:How to find a specific folder in its super directory of a given path using java如何使用java在给定路径的超级目录中查找特定文件夹
【发布时间】:2016-08-25 10:11:49
【问题描述】:
  • 如何使用java在给定路径的超级目录中查找特定文件夹?
  • 例如,我需要在给定的路径中找到一个名称为“传入”的文件夹:D:\test\28-4-2016\spr\5526283_1\ItemFile\1446026507776_1\ftp\content-providers\ spr-e\data\incoming\EHPP-17-2-2015\EHPP-17-2-2015
  • 我需要找到文件夹及其路径。
  • 我当前的代码找不到文件夹。
  • 谁能帮我实现这个目标?

-------代码 sn-p 开始----------- --- 公共静态无效查找() {

        File dir = new File("D:\\test\\28-4-2016\\apa\\5346560_1 
  \\ItemFile\\1444799103007_1\\ftp\\content-providers\\apa-e\\data
  \\incoming\\CBS_v47i4");
    findDirectory(dir);
  }
   private static void findDirectory(File parentDirectory) {
    if(foundFolder) {
        return;
    }
    File[] files = parentDirectory.listFiles();
    for (File file : files) {
        if (file.isFile()) {
            continue;
        }
        if (file.getName().equals("incoming")) {
            foundFolder = true;
            System.out.println("Incoming Folder found : ");
            System.out.println("Incoming filder path : 
  "+file.getAbsolutePath());
            System.out.println("Parent path :  " +file.getParent());
            break;
        }
        if(file.isDirectory()) {
           findDirectory(file);
        }
    }
    }
    }

【问题讨论】:

  • 您遇到了什么问题?任何异常或错误输出?
  • 对不起,我已经更新了我的问题。文件夹“Incoming”将包含在给定路径的超级目录中。
  • @Blip : 请帮我实现这一目标。
  • 谢谢你,先生,你能帮我指导我如何检索到 Incoming 的字符串吗?

标签: java file search directory


【解决方案1】:

如下更改您的findDirectory 方法

public static void find() {
    File dir = new File(
            "D:\\test\\28-4-2016\\apa\\5346560_1\\ItemFile\\1444799103007_1\\ftp\\content-providers\\apa-e\\data\\incoming\\CBS_v47i4");
    foundFolder = findDirectory(dir);
}

private static boolean findDirectory(File parentDirectory) {
    System.out.println(parentDirectory.getPath());
    File[] files = parentDirectory.listFiles();
    for (File file : files) {
        if (!file.isFile()) {

            if (file.getName().equals("incoming")) {

                System.out.println("Incoming Folder found : ");
                System.out.println("Incoming filder path : " + file.getAbsolutePath());
                System.out.println("Parent path :  " + file.getParent());
                return true;
            } else if (file.isDirectory()) {
                return findDir(file);
            }
        }
    }
    System.out.println("Incoming Folder not found : ");
    return false;
}

【讨论】:

    【解决方案2】:

    您的示例和硬编码路径中似乎有错字?此外,使用 Path.pathSeperator() 而不是双飞溅。我建议您递归地导航到子文件夹并输出所有文件和目录以进行调试。

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2022-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多