2012-08-09 179 views
0

我不是一個非常好的Java程序員,我需要知道如何將所有文件打印到一個文件夾中。請參見下面的代碼:Java - 如何獲取文件夾中的所有文件名

for(int i=0;i<folder.number_of_files;i++){ 
System.out.println(filename[i]); 
} 

感謝您的時間

回答

4
File file = new File("C:\\"); 
File[] files = file.listFiles(); 
for (File f:files) 
{ 
    System.out.println(f.getAbsolutePath()); 
} 

listFiles()有更多選項。請參閱文檔here

+0

未來,請不要參考roseindia ... – mre 2012-08-09 23:43:35

+0

mmm ..好的。任何原因? – 2012-08-09 23:43:58

+0

http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html – mre 2012-08-09 23:44:37

8

最簡單的方法是使用File#listFiles。如果您使用Java 7,請參閱this以瞭解對文件I/O庫的更改。例如,

File folder = ...; 
for(File f : folder.listFiles()) 
{ 
    System.out.println(f.getName()); 
} 

注意這不會對folder目錄中抓住任何子文件夾中的內容。

+0

請問您能更具體嗎? – Ewen 2012-08-09 23:37:22

+0

對不起,我沒有意識到這是一個鏈接。 – 2012-08-09 23:42:27

3

如果您還想檢查下面的子文件夾,則運行遞歸併檢查Desktop及其子文件夾下的所有文件並寫入列表。

private static String lvl = ""; 
    static BufferedWriter bw; 
    private static File source = new File("C:\\Users\\"+System.getProperty("user.name")+"\\Desktop\\New folder\\myTest.txt"); 

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




     bw = new BufferedWriter(new FileWriter(source)); 

     checkFiles(new File("C:\\Users\\"+System.getProperty("user.name")+"\\Desktop"), 0); 


     bw.flush(); 
     bw.close(); 
     lvl = null; 

    } 
    static void checkFiles(File file, int level) throws IOException{ 

     if(!file.exists()){ 

      return; 
     } 

     for(String s:file.list()){ 

      if(new File(file.getPath() + "\\" + s).isDirectory()){ 

       bw.newLine(); 
       bw.write(lvl + "Directory: " + s); 

       lvl += " "; 

       checkFiles(new File(file.getPath() + "\\" + s), level+1); 

      }else{ 

       bw.newLine(); 
       bw.write(lvl + "File: " + s); 

      } 
     } 
    } 
} 
+0

謝謝,但它有點複雜 – Ewen 2012-08-10 00:00:13

相關問題