2016-04-30 56 views
2
  • 如何在使用java的给定路径的超级目录中查找特定文件夹?
  • 例如,我需要找到一个名称为“Incoming”的文件夹:D:\ test \ 28-4-2016 \ spr \ 5526283_1 \ ItemFile \ 1446026507776_1 \ ftp \ content-providers \ EHPP-17-2-2015 \ EHPP-17-2-2015
  • 我需要找到文件夹及其路径。
  • 我现在的代码没有找到该文件夹​​。
  • 任何人都可以帮助我实现这个目标吗?

-------------------代码片段启动---------------------- ---- 公共静态无效的发现(){ 如何在使用java的给定路径的超级目录中查找特定文件夹

 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); 
     } 
    } 
    } 
    } 
+0

什么是你所得到的问题更改findDirectory方法?任何异常或错误的输出? – Blip

+0

对不起,我已经更新了我的问题。文件夹“Incoming”将包含在给定路径的超级目录中。 –

+0

@ Blip:善良帮助我实现这一目标。 –

回答

1

如下

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; 
} 
+0

@ Geeth:谢谢,工作正常 –

0

似乎是在你的例子一个错字和硬编码路径?另外,使用Path.pathSeperator()而不是双击。我会建议你递归,导航到子文件夹并输出所有文件和目录进行调试。

相关问题