2016-04-30 55 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()而不是雙擊。我會建議你遞歸,導航到子文件夾並輸出所有文件和目錄進行調試。

相關問題