2011-04-17 170 views

回答

553

你可以那樣做:

File folder = new File("your/path"); 
File[] listOfFiles = folder.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) { 
     if (listOfFiles[i].isFile()) { 
     System.out.println("File " + listOfFiles[i].getName()); 
     } else if (listOfFiles[i].isDirectory()) { 
     System.out.println("Directory " + listOfFiles[i].getName()); 
     } 
    } 

你想只得到JPEG文件或所有文件?

+3

是的,但沒有處理擴展名取決於擴展名存在COS文件可能沒有擴展名也可能存在。 – Abhishek 2011-04-17 15:45:03

+4

btw如果你想要當前文件夾,你可以使用'文件夾=新文件(「。」);'...比相同。示例'new File(「./"+ your_file);' – Csanesz 2014-10-28 08:25:30

+2

@RoflcoptrException有一個疑問。這個listofFiles [i]指向文件夾中的第一個文件(最後創建的)還是最後一個文件(第一個創建的)?我的文件夾中的 – 2015-01-14 09:07:35

52

以下是如何查看documentation

首先,您正在處理IO,因此請查看java.iopackage

有兩個看起來很有趣的課程:FileFilterFileNameFilter。當我點擊第一個時,它顯示我在File類中有一個listFiles()方法。而對於該方法的文檔說:

返回抽象路徑名 表示此抽象路徑名錶示的目錄 文件的數組。

在JavaDoc中滾動到File,我看到構造函數。這真的是我需要能夠創建一個File實例,並呼籲listFiles()。滾動更進一步,我可以看到有關如何在不同的操作系統中命名文件的一些信息。

99

創建一個File對象,將目錄路徑傳遞給構造函數。使用listFiles()爲目錄中的每個文件檢索一組File對象,然後調用getName()方法獲取文件名。

List<String> results = new ArrayList<String>(); 


File[] files = new File("/path/to/the/directory").listFiles(); 
//If this pathname does not denote a directory, then listFiles() returns null. 

for (File file : files) { 
    if (file.isFile()) { 
     results.add(file.getName()); 
    } 
} 
+0

你實際上應該調用'listFiles()';) – Progman 2011-04-17 15:48:29

+0

@Progman可能會有所幫助。 :) – 2011-04-17 15:50:41

+0

在我的文件夾中只有* .xml文件,是否有任何選項來檢查只有那些應該被視爲文件? – 2015-11-02 11:10:00