2013-01-15 54 views
0

我想寫一個簡短的應用程序。它必須瀏覽文件以查找文件夾。如果它找到一個文件夾,它會在控制檯上寫入文件夾的名稱並將其放入該文件夾中。接下來寫入包含在文件夾中的txt文件的控制檯名稱。java中的文件管理器

我的代碼:

import java.io.File; 

public class test { 
    public static void search(File f) { 

     File[] tab = f.listFiles(); 
     for (File file1 : tab) { 
      if (file1.isDirectory()) { 
       search(file1); 
      } else { 
       if (Txt(file1)) { 
        System.out.println("+ " + file1); 
       } 
      } 
     } 
    } 

    public static boolean Txt(File f) { 
     return f.getName().substring(f.getName().length() - 4).equals(".txt"); 
    } 

    public static void main(String[] args) { 
     try { 
      File f = new File("/home/mati/Pulpit"); 
      search(f); 
     } catch (Exception e) { 
     } 

    } 
} 

的代碼結果:

+ New Folder 
    - aaa.txt 
    - abc.txt 
    - abf.txt 
+ New Folder2 
    - abgh.txt 

我的程序只寫txt文件,我不知道如何解決它...

+0

我不知道我理解你的問題。有些東西可能有助於說明:文件夾的內容是什麼,以及在該文件夾中運行時程序的預期輸出是什麼?就目前而言,你展示的輸出似乎是我所期望的。 –

+0

它必須顯示文件夾的名稱和文件夾的內容(僅限txt文件) – MOnasz

+0

正如我在「代碼結果」中顯示的那樣 – MOnasz

回答

0

兩件事情:第一,要顯示文件夾名稱,您需要使用「if(file1.isDirectory())」條件在代碼的分支中添加一個System.out。你已經在「其他」部分有一個System.out,這就是文件名顯示的原因。

其次,雖然如果您有文件夾內的文件夾,這可能不會按照您希望的方式工作。所有文件夾將顯示一級縮進,並且所有文件都將與另一級顯示。但是你將無法看到哪些文件夾嵌套在其他文件夾中。