2011-02-07 106 views

回答

139

如果您在myDirectoryPath有目錄名,

import java.io.File; 
... 
    File dir = new File(myDirectoryPath); 
    File[] directoryListing = dir.listFiles(); 
    if (directoryListing != null) { 
    for (File child : directoryListing) { 
     // Do something with child 
    } 
    } else { 
    // Handle the case where dir is not really a directory. 
    // Checking dir.isDirectory() above would not be sufficient 
    // to avoid race conditions with another process that deletes 
    // directories. 
    } 
+1

Javado在listFiles()中說:「路徑名錶示目錄本身和目錄的父目錄不包含在結果中。「 – pihentagy 2012-09-14 10:35:22

+0

@pihentagy,我不知道。謝謝。 – 2012-09-14 15:10:16

+1

fyi如果你想要當前文件夾,你可以使用`new File(「。」);' – Csanesz 2014-10-28 08:59:23

6

下面是我列出桌面上的所有文件的例子。您應該將路徑變量更改爲您的路徑。

不要使用System.out.println打印文件名,而應該將自己的代碼放在文件上。

public static void main(String[] args) { 
    File path = new File("c:/documents and settings/Zachary/desktop"); 

    File [] files = path.listFiles(); 
    for (int i = 0; i < files.length; i++){ 
     if (files[i].isFile()){ //this line weeds out other directories/folders 
      System.out.println(files[i]); 
     } 
    } 
} 
27

我想有很多方法可以製作你想要的東西。這是我使用的一種方法。使用commons.io庫,您可以迭代目錄中的文件。您必須使用FileUtils.iterateFiles方法,並且您可以處理每個文件。

你可以在這裏找到所需的信息:http://commons.apache.org/proper/commons-io/download_io.cgi

下面是一個例子:

Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false); 
     while(it.hasNext()){ 
      System.out.println(((File) it.next()).getName()); 
     } 

您可以更改null,並把一些推廣的列表,如果你想過濾器。示例:{".xml",".java"}